所以Java 8引入了方法引用,文档描述了这四种类型.
我的问题是两种实例类型之间的区别是什么?
- 引用特定对象的实例方法.
- 引用特定类型的任意对象的实例方法.
两者都参考参考但有什么显着不同?用于解决它们的类型推断是不同的吗?重要的是(在他们的例子中)一个是闭包而另一个是lambda?它与方法的参数数量有关吗?
我正在尝试使用Java中的Lambda表达式来理解以下方法参考代码:
interface MyFunc<T> {
boolean func(T v1, T v2);
}
class HighTemp {
private int hTemp;
HighTemp(int ht) {
hTemp = ht;
}
boolean sameTemp(HighTemp ht2) {
return hTemp == ht2.hTemp;
}
boolean lessThanTemp(HighTemp ht2) {
return hTemp < ht2.hTemp;
}
}
class InstanceMethWithObjectRefDemo {
static <T> int counter(T[] vals, MyFunc<T> f, T v) {
int count = 0;
for (int i = 0; i < vals.length; i++) {
if (f.func(vals[i], v)) {
count++;
}
}
return count;
}
public …Run Code Online (Sandbox Code Playgroud)