在其构造函数中具有ObjSystem.out.println("Hello world!") ;

我使用-Obj[] objArray = new Obj[10] ;创建了此类的数组,并且未打印任何内容,这意味着-没有调用Obj的实例。除了在for循环中创建实例之外,还有其他方法可以创建此类数组吗?

最佳答案

好吧,既然您想了解一种除了使用for循环之外的方法,可以这样做:-

Obj[] objArray = {new Obj(), new Obj(), new Obj()};


这里发生的是,您正在直接使用数组元素初始化数组引用。
现在,从LHS上的数组引用类型可以推断出实际数组对象的类型。

因此,使用该声明,将创建一个大小为3的数组(在上述情况下),并使用给定顺序使用instance类的Obj初始化该数组中的每个索引。



我建议的一种更好的方法是使用ArrayList,在这种情况下,您可以使用double-braces initialization来初始化List而无需for循环。另外,您还可以随时向其中添加新元素。由于它是dynamically increasing数组。

List<Object> list = new ArrayList<Object>() {
    {
        add(new Obj());
        add(new Obj());
        add(new Obj());
    }
};  // Note the semi-colon here.

list.add(new Obj());  // Add another element here.

10-07 13:18
查看更多