0

这里有一个类似的答案: 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,但我得到的错误是:

找不到符号
符号:可调用类

我不知道为什么。

另外,我尝试对 xMethod 使用返回类型 String,你能传递一个返回类型不同的函数然后 Integer 吗?

4

1 回答 1

0

我认为您需要先导入Callableasimport 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/

于 2012-09-30T09:15:42.847 回答