日期:2014-05-20  浏览次数:20855 次

有什么方法能确定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
    }
}