最近从这个问题我得知以下似乎是合法的java:
class Bar {
void foo(Bar this) {}
}
Run Code Online (Sandbox Code Playgroud)
现在,我试图找到java标准中的哪个位置表示你可以这样做,并且在这里查看但我找不到该部分.
有人可以引用它允许这种形式的方法声明的地方以及声明命名参数的限制this是什么?
我正在尝试使用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)