我需要对某种类型的所有对象进行分组。 例如,我有一个班级:
class A {
public A() {
//...
}
}
并在主要方法中:
class B {
public static void main(String[] args) {
A a1 = new A();
A a2 = new A();
A a3 = new A();
}
}
有没有办法对象A进行操作,好像它是一个数组,没有我创建它? 这可能是一个愚蠢的问题,但我想消除我的疑虑。
答案 0 :(得分:3)
如果我理解你正确的问题......创建一堆对象并不意味着你可以立即将它们作为数组引用。做你喜欢的事情最简单的方法是:
ArrayList<ObjectA> list = new ArrayList<ObjectA>();
for(int i=0;i<10;i++) {
list.add(new ObjectA());
}
答案 1 :(得分:0)
你有几个选择。如果你真的只想要一个A值数组的静态初始化,你可以这样做:
A[] arrayOfAs = {new A(), new A(), new A()};
但也许更好的是:
List<A> listOfAs = new ArrayList<>();
listOfAs.add(new A());
listOfAs.add(new A());
// ...
listOfAs.add(new A());
// then finally:
A[] arrayOfAs = listOfAs.toArray(new A[0]);
哪个更好取决于您的背景。 “new A [0]”可能看起来很有趣,但是为了告诉Java要返回正确的类型,它是必需的。
话虽如此,像List这样的容器类可能更合适。