gpt4 book ai didi

java - 我们可以在 lambda 表达式中改变这个引用吗?

转载 作者:行者123 更新时间:2023-12-02 00:59:23 25 4
gpt4 key购买 nike

我引用了 Cay S. Horstmann 的一本书,并遇到了 lambda 表达式。

lambda 表达式可以捕获封闭范围内变量的值,但只能引用值不会改变的变量。

考虑到这一点,我对在 lambda 表达式中使用 this 引用感到困惑。让我困惑的是,当我们在非静态方法中的 lambda 表达式中使用 this 引用时,我们是否可以改变 this 引用的对象?

最佳答案

如果这就是您所讨论的内容,您可以随意改变它们,因为 a 不是局部变量。此示例使用 Function .

public class MutatingTest {
int a = 0;
public static void main(String[] args) {
new FinalTest().start();
}

public void start() {
Function<Integer,Integer> app = b->b + this.a++;

int v = app.apply(10);
System.out.println(v);

v = app.apply(10);
System.out.println(v);

v = app.apply(10);
System.out.println(v);

v = app.apply(10);
System.out.println(v);
}
}

打印

10
11
12
13

关于java - 我们可以在 lambda 表达式中改变这个引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com