将函数作为对Java中另一个方法的引用进行传递

原学程将引见将函数作为对于Java中另外一个办法的援用停止传播的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

将函数作为对Java中另一个方法的引用进行传递 教程 第1张

成绩描写

我在ABC类中有1个函数,其界说年夜致以下

Boolean getBool(Value val一, Value val二) {
  if (val一.getVal() == val二.getVal()) {
 return true;
  }
  return false;
}

怎样将此办法作为援用传播给另外一个办法,比喻说操纵()并从那边挪用它。

String operate(<<<Pass getBool method here>>>, Param一) {
  val一 = some computations on Param一
  val二 = some other computations on Param二
  Boolean value = <<<<<Call getBool with val一 and val二 here>>>>>
  if (value) { return "Yes"; }
  else { return "No"; }
}

请助助我!!
我读过多少个处理计划,但是它们要末是经由过程援用传播戴有参数的办法,但是前往典型为空,要末是经由过程援用传播出有所有参数以及1些前往典型的办法。
我愿望经由过程戴有参数并具备某些前往典型的援用去传播函数。

推举谜底

您的办法不妨由JAVA 8函数交心BiFunction<T, U, R>表现,由于它接收二个参数并前往值。

String operate(BiFunction<Value,Value,Boolean> function, TypeOfParam一 param一, TypeOfParam二 param二) {
 val一 = some computations on param一
 val二 = some other computations on param二
 Boolean value = function.apply(val一,val二);
 return value ? "Yes" : "No";
}

并应用办法援用挪用operate

ABC abcInstance = ...
String boolString = operate (abcInstance::getBool, param一, param二);

佳了闭于将函数作为对于Java中另外一个办法的援用停止传播的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。