本文介紹了將函數(shù)作為對Java中另一個方法的引用進(jìn)行傳遞的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我在ABC類中有一個函數(shù),其定義大致如下
Boolean getBool(Value val1, Value val2) {
if (val1.getVal() == val2.getVal()) {
return true;
}
return false;
}
如何將此方法作為引用傳遞給另一個方法,比方說操作()并從那里調(diào)用它。
String operate(<<<Pass getBool method here>>>, Param1) {
val1 = some computations on Param1
val2 = some other computations on Param2
Boolean value = <<<<<Call getBool with val1 and val2 here>>>>>
if (value) { return "Yes"; }
else { return "No"; }
}
請幫幫我!!
我讀過幾個解決方案,但它們要么是通過引用傳遞帶有參數(shù)的方法,但返回類型為空,要么是通過引用傳遞沒有任何參數(shù)和一些返回類型的方法。
我希望通過帶有參數(shù)并具有某些返回類型的引用來傳遞函數(shù)。
推薦答案
您的方法可以由JAVA 8函數(shù)接口BiFunction<T, U, R>
表示,因為它接受兩個參數(shù)并返回值。
String operate(BiFunction<Value,Value,Boolean> function, TypeOfParam1 param1, TypeOfParam2 param2) {
val1 = some computations on param1
val2 = some other computations on param2
Boolean value = function.apply(val1,val2);
return value ? "Yes" : "No";
}
并使用方法引用調(diào)用operate
:
ABC abcInstance = ...
String boolString = operate (abcInstance::getBool, param1, param2);
這篇關(guān)于將函數(shù)作為對Java中另一個方法的引用進(jìn)行傳遞的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,