Java 8明确'this'参数

时间:2015-06-16 15:42:26

标签: java parameters java-8 this

我最近听说自Java 8以来可以在实例方法中定义一个名为this的显式参数,如下所示:

public class Test
{
    public void test(Test this, int i) { System.out.println(i); }
}

这种语法有什么用?

正如您在此截图(Eclipse,编译器合规性Java 8)中可以清楚地看到的,这是有效的语法。

Proof

1 个答案:

答案 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?