我最近听说自Java 8以来可以在实例方法中定义一个名为this
的显式参数,如下所示:
public class Test
{
public void test(Test this, int i) { System.out.println(i); }
}
这种语法有什么用?
正如您在此截图(Eclipse,编译器合规性Java 8)中可以清楚地看到的,这是有效的语法。
答案 0 :(得分:7)
对于Java 7或更早版本,您不能将this
用作变量的名称,因为它是reserved keyword。您可以做的是将this
作为参数传递给方法:
class Test {
public void foo(Test test, int i) {
//...
}
public void foo(int i) {
foo(this, i);
}
}
对于Java 8,请参阅Why can we use 'this' as an instance method parameter?