我有一个名为HelloWorld的类,我在其中创建了Class Test test = new Test()的对象;
然后在HelloWorld类中我有我的主要功能和另一个:
public static int passMe(){
System.out.println("running this function");
return 1;
}
这是我试图通过的功能。我使用以下内容将其传递给测试:
test.getSomeFunction(new Callable<Integer>(){
public Integer call(){
return passMe();
}
});
在Test class里面我有:
public void getSomeFunction(Callable<Integer> someFunction){
System.out.println(someFunction);
}
现在这一切都有效,但是没有运行passMe(),而是我不知道如何引用它。 如果我打印出someFunction,我会得到:
"HelloWorld$1@35a8767"
所以我的问题是如何运行我传入的函数,如果我做someFunction()我得到错误消息“他的方法someFunction()未定义类型测试”
答案 0 :(得分:1)
try {
Integer result = callable.call();
} catch (Exception e) {
throw new IllegalStateException(e);
}
必须处理异常,因为它由Callable definition强制执行。
请注意,您没有传递passMe
函数,而是可以调用它的可调用对象。