众所周知,在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
答案 0 :(得分:5)
您需要参考BiFunction
的方法:
MyInterface int_ = MyClass.testParamFun::apply;