我在ABC類,其定義大致如下傳遞函數爲參考,以另一種方法在Java中
Boolean getBool(Value val1, Value val2) {
if (val1.getVal() == val2.getVal()) {
return true;
}
return false;
}
我如何可以通過這個方法,參照其他方法的功能,比方說工作()和從那裏調用它。
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"; }
}
請幫忙!! 我已經閱讀了幾個解決方案,但他們要麼通過引用傳遞一個方法參數,但無效返回類型,或者,通過引用傳遞一個方法沒有任何參數和一些返回類型。 我想通過參數傳遞一個函數,並有一些返回類型。
'布爾值= getBool(VAL1,val2的);'? – nbokmans
你可以使用'BiPredicate'類型。這裏是一個列表:https://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html或者,你可以定義你自己的功能界面。 –
簡單的方法就是將調用包裝到lambda表達式中,然後傳遞lambda表達式。 Java有一個'::'iirc,可以用來獲取對方法的引用。 – Carcigenicate