考虑我们有一组变量,这些变量包含对方法的引用:
public double m2(String s, int n){return n;}
Runnable r = ()->{};
Consumer<String> c1 = System.out::println;
BiFunction<String, Integer, Double> f2 = this::m2;
我们可以根据具体变量类型以不同的方式调用它们:
r.run();
c1.accept("Hello");
Object res = f2.apply("Hello", 1);
现在,我需要一个全局方法来调用任何类型的引用方法:
public static Object call(Object lambda, Object... args) {...}
Object res0 = call(r); // returns null
Object res1 = call(c1, "Hello");
Object res2 = call(f2, "Hello", 1)
如何实现这种方法?参数的可能功能类型的集合lambda不受限制。
catspeake
相关分类