2012-10-01 60 views
0

我有一个名为HelloWorld的类,我在其中创建了一个类Test Test = new Test()的对象。将函数作为参数从一个类传递到另一个类

然后在HelloWorld类我有我的主要功能及其他:

public static int passMe(){ 
    System.out.println("running this function"); 
    return 1; 
} 

这功能我尝试通过。我使用下面的传递INT测试:

test.getSomeFunction(new Callable<Integer>(){ 
       public Integer call(){ 
        return passMe(); 
       } 
      }); 

测试类中,我有:

public void getSomeFunction(Callable<Integer> someFunction){ 
     System.out.println(someFunction); 
    } 

现在这一切工作,但PASSME()没有被运行,而我不知道如何引用它。 如果我打印出来someFunction,我得到:

"[email protected]" 

所以我的问题是我怎么去跑我得到了传递的功能,如果我做someFunction()我得到错误信息“,他的方法someFunction()对于类型未定义测试“

回答

1
try { 
     Integer result = callable.call(); 
    } catch (Exception e) { 
     throw new IllegalStateException(e); 
    } 

必须处理例外,因为它由Callable definition执行。

请注意,您没有通过passMe函数,而是可以调用它的可调用对象。

+0

当我做.call()我得到错误:“未处理的异常类型异常” – Saad

相关问题