Java使用自己的实例创建多个内部类对象

Java使用自己的实例创建多个内部类对象,java,class,object,Java,Class,Object,我用类测试的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(Strin

我用类测试的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的字符串。 我认为每个内部类对象都有自己的参数实例,但似乎在创建lase对象之前,它都会被覆盖。 有没有办法解决这个问题?
谢谢,永远不要那样做。在构造函数中写入静态变量的值。显然,静态变量是按自然顺序初始化的,因此写入
实例
变量的最后一个值是
test3
中的值


要解决此问题,必须从变量
实例
中删除
static
修饰符

切勿这样做。在构造函数中写入静态变量的值。显然,静态变量是按自然顺序初始化的,因此写入
实例
变量的最后一个值是
test3
中的值


要解决此问题,您必须从变量
实例
中删除
静态
修饰符,问题是您已将
字符串实例声明为
静态
。这意味着它在整个类中只存在一次,而不是每个实例都存在一次。删除
静态
,它应该可以正常工作。

问题是您已将
字符串实例
声明为
静态
。这意味着它在整个类中只存在一次,而不是每个实例都存在一次。删除
静态
,它应该按预期工作。

不要使用,它有许多微妙之处,是一个肮脏的黑客,在代码中没有位置。另外,可变的
枚举
是anthema!在
enum
中,每个变量都应该是
final
。千万不要使用,它有许多微妙之处,是一个肮脏的黑客,在代码中没有位置。而且可变
enum
是anthema!每个变量都应该是
enum
中的
final
。谢谢。我更改了变量并删除了static,所以现在它可以工作了。谢谢。我更改了变量并删除了static,所以现在它可以工作了。