2012-10-01 98 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

相關問題