我在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