Java 8 显式 'this' 参数

标签 java parameters java-8 this

<分区>

我最近听说从 Ja​​va 8 开始可以在实例方法中定义一个名为 this 的显式参数,如下所示:

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

这种语法有什么用?

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

Proof

最佳答案

对于 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/

相关文章:

javascript - Window.Open() 错误地转义了?

java - JUnit 参数化测试 - IllegalArgumentException : wrong number of arguments

java - Java 8 的 java.time API 中的模拟时间

java - 如何使用内部列表流式传输列表

java - 我可以在 Hazelcast 中使用 LinkedHashMap 吗?

java - terraria 为何拥有如此大的世界并且仍然具有丝般流畅的 fps?

c - 将数组作为指针传递

Java如何在函数中返回拆分数组?

java - 何时在 Java 类中实例化静态 block

Java 8 List<V> 到 Map<K, V> 覆盖重复键