簡體   English   中英

將函數作為參數從一類傳遞到另一類

[英]passing function as arguments from one class to another

我有一個名為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,我得到:

"HelloWorld$1@35a8767"

所以我的問題是我該如何運行傳入的函數,如果我執行someFunction(),則會收到錯誤消息“他的方法someFunction()對於類型Test未定義”

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

必須處理異常,因為它由Callable定義強制執行。

請注意,您不是傳遞passMe函數,而是傳遞可以調用它的可調用對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM