java FUNCTION 可以使用lambda 模式直接传入返回值,这种模式下->前的参数可以是任意写,
1、参数是被忽略的,无需定义
2、函数调用时候,直接返回->后面的值
测试代码如下
package external.test;
import java.util.function.Function;
public class FunctionTest {
static ClassLoader c;
public static void main(String[] args) {
FunctionTest m = new FunctionTest();
c=FunctionTest.class.getClassLoader();
System.out.println();
// t没有用,直接返回FunctionTest.class.getClassLoader()
m.testFunc( t -> FunctionTest.class.getClassLoader());
// 执行m::test函数
m.testFunc(m::test);
//m.testFunc(t->null);
}
public void testFunc(Function<String, ClassLoader> function) {
System.out.println("function="+function.toString());
ClassLoader cl = function.apply(function.toString());
System.out.println(cl.equals(c));
}
public ClassLoader test(String t) {
System.out.println("t="+t);
return FunctionTest.class.getClassLoader().getParent();
}
}