众所周知,在 java-8 中我们可以将函数/方法存储在变量中。通过使用以下方式。
@FunctionalInterface
public interface MyInterface {
public string getValue(int val1, int val2);
}
public class MyClass {
static String someFun(int val1, int val2) {
return ""+(val1+val2)
}
static BiFunction<Integer, Integer, String> testParamFun = (a,b) -> ""+(a+b);
public static void main(String[] args){
MyInterface intr = MyClass::someFun;
System.out.println(int.getValue(2,4)); // outpur will be "6"
/* i want this, but it give me compile time error?
I want to store that function in variable like i was doing in above case. */
MyInterface inter = MyClass::testParamFun;
System.out.println(inter.getValue(4,5)); // it gives me error.
// then i tried this
System.out.println(inter.apply(4,5)); // i got error again.
}
}
我的问题是,如何将 BiDirection
存储在变量类型 MyInterface
最佳答案
需要引用BiFunction
的方法:
MyInterface int_ = MyClass.testParamFun::apply;
关于java - 将 lambda 函数存储在变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32521445/