当前位置: 代码迷 >> J2SE >> 有什么方法能确定JAVA中void方法确定被成功调用了吗?解决方案
  详细解决方案

有什么方法能确定JAVA中void方法确定被成功调用了吗?解决方案

热度:163   发布时间:2016-04-24 12:34:18.0
有什么方法能确定JAVA中void方法确定被成功调用了吗???
因为我的void方法没有显式反馈任何是否成功调用的信息。

------解决方案--------------------
你是指api中的方法吗
------解决方案--------------------
既然是void所以又没有返回值无所谓。既然如此你可以让他返回一个数值来判断他是否执行成功啊。或者如果就希望该方法是void,我能想到的就是在方法里面抛出异常。来确定是否调用成功
------解决方案--------------------
在方法里面system出来字符串之类的
------解决方案--------------------
调试不就知道了
如果业务要求知道,那你就没必要void了
------解决方案--------------------
将void换成boolean型的返回值,确定是否调用成功.
或者设置个exception 的flag,出了excepiton将flag置成false;
------解决方案--------------------
在方法里加上日志或者是
System.out.println("a") ;
都是可以的。

------解决方案--------------------
里面用try/catch全部包起来,出错了就throw一Exception,外面try catch一下
------解决方案--------------------
log4j
------解决方案--------------------
在那void方法中调用一个静态类中的变量,然后根据这个变量
------解决方案--------------------
在最后打印一句话就行了
------解决方案--------------------
在这个void的方法里面的第一行加入如下代码:
System.out.println("欢迎进入xxxx方法!");
或者借助于ide 进行debug下就OK了
------解决方案--------------------
里面设个断点,就可以调试了
------解决方案--------------------
拍板砖 添加一输出语句 比如说 System.out.println("done");
------解决方案--------------------
在方法的最后打印一句话吗
------解决方案--------------------
既然是void 那就没必要啊
------解决方案--------------------
返回之前抛出个异常,调用者如能捕获异常就说明调用成功:
void f() throws CallFuncException{
throw new CallFuncException();
}
void caller(){
try{
f();
System.out.println("调用没有成功");
}
catch(Exception e){
System.out.println("调用成功");
}
}
class CallFuncException extends Exception{
}

------解决方案--------------------
在外部定义一个静态变量i并初始化为0;
在void方法中加一个语句 i++
在你调用void的方法下面加一个语句
System.out.println(i);
如果是1则调用成功、
------解决方案--------------------
给你随便写个用反射调用方法,统计方法运行时间的做法
Java code
public class test2 {    public static void main(String[] args) {        dofun("mytest","myfunc");    }        public static void dofun(String classname,String funcname) {        try {            Class clazz = Class.forName(classname);            Object obj = clazz.newInstance();            Method m = clazz.getMethod(funcname, null);                        long start = System.currentTimeMillis();            m.invoke(obj, null);            long end = System.currentTimeMillis();                        System.out.printf("%s run success | TimeELS : %d\n",m.getName(),end-start );        } catch (Exception e) {            e.printStackTrace();        }    }        }class mytest {    public void myfunc() {        System.out.println("this is my func");        try {            Thread.sleep(1000);        } catch (InterruptedException e) {            e.printStackTrace();        }        // do something    }}
  相关解决方案