<分区>
我最近听说从 Java 8 开始可以在实例方法中定义一个名为 this
的显式参数,如下所示:
public class Test
{
public void test(Test this, int i) { System.out.println(i); }
}
这种语法有什么用?
正如您在此屏幕截图中清楚地看到的(Eclipse,编译器符合 Java 8),这是有效的语法。
标签 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),这是有效的语法。
最佳答案
对于 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?
关于Java 8 显式 'this' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872237/