Java 如何生成一个类的所有实例的数组?

Java 如何生成一个类的所有实例的数组?,java,arrays,class,instance,Java,Arrays,Class,Instance,我想创建一个类的所有实例的数组,这样每次创建一个新实例时,它都会自动添加到数组中。我该怎么做呢?使用。Factory将是获取新实例的唯一方法,因此可以将它们保存在一个数组中。要显示示例中Zabuza所说的内容,请执行以下操作: import java.util.ArrayList; public class Example { private static ArrayList<Example> collection; public Example() { get

我想创建一个类的所有实例的数组,这样每次创建一个新实例时,它都会自动添加到数组中。我该怎么做呢?

使用。Factory将是获取新实例的唯一方法,因此可以将它们保存在一个数组中。

要显示示例中Zabuza所说的内容,请执行以下操作:

import java.util.ArrayList;

public class Example {

  private static ArrayList<Example> collection;

  public Example() {
    getCollection().add(this);
  }

  public static ArrayList<Example> getCollection() {
    if(collection == null)
      collection = new ArrayList<Example>();
    return collection;
  }
}
import java.util.ArrayList;
公开课范例{
私有静态ArrayList集合;
公共示例(){
getCollection()。添加(此);
}
公共静态ArrayList getCollection(){
if(集合==null)
collection=newarraylist();
回收;
}
}

您可以在对象的构造函数中放入一些内容,将其添加到所需的数组中。首先,数组没有动态大小。它们不能生长,它们的大小是固定的。也许你需要一个
列表
。无论如何,您可以将列表作为静态字段,并将实例添加到其构造函数中,
instances.add(this)。请注意,这种方法可以在保持实例处于活动状态时有效地消除垃圾收集。您可以改用
WeakReference
s。但老实说,这听起来像个XY问题。你想用这个达到什么目的?缓存?对于你想要实现的目标,可能有比这个想法更好的方法。这是一个非常广泛的答案。您没有尝试向OP演示如何执行此操作。模式本身并不试图直接解决OPs问题。Hi。我试过了,结果出了这个错误。java:18:error:->expected collection=new ArrayList()^@RamNarayanan…哪个错误?您没有说错误是什么。另外,指向错误的胡萝卜在分号下面。@RamNarayanan听起来好像您在将示例复制到IDE时缺少括号或括号。我建议仔细检查,以确保方法和类正确关闭。