这里有一个类似的答案: How to pass a function as a parameter in Java?
但提供的正确答案不起作用。我有一节课:
public class randomClass {
2
3 public String name;
4 private int x;
5 private boolean y;
6
7 public randomClass(String name){
8 this.name = name;
9 setAttributes(1,true, "test");
10 System.out.println(x + "," + y);
11 }
...
21
22 public int xMethod(){
23 return 1;
24 }
25
26 public void passMethod(){
27 testMethod(new Callable<Integer>() {
28 public Integer call(){
29 return xMethod();
30 }
31 });
32 }
33
34 public void testMethod(Callable<Integer> myFunc){
35
36 }
内幕功能passMethod
我正试图将xMethod
传递给testMethod
,但我得到的错误是:
找不到符号
符号:类Callable
我不知道为什么。
另外,我尝试使用返回类型String for xMethod,你能传递一个具有不同返回类型的函数,然后是Integer吗?
答案 0 :(得分:0)
我认为您需要将Callable
导入为import java.util.concurrent.Callable;
,然后在使用之前在您的班级中实施。
点击此处:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/Callable.html
http://kamleshkr.wordpress.com/2009/10/02/java-threads-callable-and-future/