gpt4 book ai didi

Java创建多个内部类对象并拥有自己的实例

转载 作者:行者123 更新时间:2023-12-02 02:14:48 26 4
gpt4 key购买 nike

我创建了一个 Test 类,其中包含 Test 类的 3 个内部对象。

pblic class Test
{
public static final Test test1=new Test("a");
public static final Test test2=new Test("b");
public static final Test test3=new Test("c");

//instance
public static String instance;

public Test(String init)
{
instance=init;
}

.
.
.

到目前为止,这有效。比我有一个枚举文件来执行此操作:

public enum myEnum
{
APPLE{{this.enumtest=Test.test1}};

Test enumtest;
.
.
.

当我调用 enumtest.toString 时,我收到的是 test3 的字符串而不是 test1。我认为每个内部类对象都有它自己的参数实例,但似乎它会被覆盖,直到创建激光对象。有什么办法可以解决这个问题吗?谢谢

最佳答案

永远不要这样做。您将静态变量的值写入构造函数内。显然,静态变量是按自然顺序初始化的,因此写入 instance 变量的最后一个值是来自 test3 的值。

要解决此问题,您必须从变量 instance 中删除 static 修饰符。

关于Java创建多个内部类对象并拥有自己的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49464220/

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