gpt4 book ai didi

java - 匿名类成员无法重新初始化

转载 作者:行者123 更新时间:2023-11-30 04:44:32 25 4
gpt4 key购买 nike

我正在重新初始化本地类的成员变量,但收到编译错误。这里有什么问题吗?为什么这不能编译?谢谢!

这不会编译

public class TestSomething {

public void someMethod(){
class LocalClassInner{
int i=100; // Error on this line.Syntax error on token ";", , expected

i=200;
}
}

}

编译得很好

public class TestSomething {

public void someMethod(){
class LocalClassInner{
int i=100;
//i=200;
}
}}

最佳答案

这并不是一个真正的本地类问题。您不能将赋值语句放在任何类的“顶层”。

赋值语句需要放在方法、构造函数、静态初始化程序或实例初始化程序中。

你写的时候

int i = 100;

您实际上是在声明内部类的一个字段(如您所知)。您可以重新分配此字段,前提是您在构造函数、方法等中这样做了。

附录

以下使用实例初始值设定项,只是为了好玩:

public void someMethod() {
class LocalClassInner {
int i = 100;
{i=200;}
}
}

它编译得很好,请参阅 http://ideone.com/qjnv3

关于java - 匿名类成员无法重新初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11379404/

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