gpt4 book ai didi

java - 内部类和局部变量

转载 作者:太空狗 更新时间:2023-10-29 23:00:45 26 4
gpt4 key购买 nike

为什么我需要申报 local variable作为final如果我的Inner class方法内定义需要使用吗?

示例:

class MyOuter2 {

private String x = "Outer2";

void doStuff() {
final String y = "Hello World";

final class MyInner {

String z = y;

public void seeOuter() {
System.out.println("Outer x is "+x);
System.out.println("Local variable is "+y);
MyInner mi = new MyInner();
mi.seeOuter();
}
}
}

为什么字符串 y需要是一个最终常数?它是如何影响的?

最佳答案

局部变量总是存在于栈中,当方法结束时所有局部变量都消失了。

但即使在方法结束后,您的内部类对象也可能在堆上(假设一个实例变量保留引用),因此在这种情况下它无法访问您的局部变量,因为它们已经消失,除非您将它们标记为最终

关于java - 内部类和局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10338708/

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