【发布时间】:2014-09-21 16:40:07
【问题描述】:
这是我的主类MainClass,它有一个数组列表MyList。我为 ExtractClass [未显示] extract 创建了一个对象并将其添加到我的 MyList。还有另一个类 PressClass [未显示]
public class MainClass {
public static void main(String[] args) {
ArrayList<ExtractClass> MyList = new ArrayList<ExtractClass>();
ExtractClass Extract = new ExtractClass();
MyList.add(Extract);
MyList.add(Extract);
PressClass Press = new PressClass();
Press.pressMethod(MyList);
}
}
这是上述程序的另一个版本。我已经初始化了一个对象 Extract,然后添加到 MyList 并再次重复。
public class trailclass {
public static void main(String[] args) {
ArrayList<ExtractClass> MyList = new ArrayList<ExtractClass>();
ExtractClass Extract;
Extract = new ExtractClass();
MyList.add(Extract);
Extract = new ExtractClass();
MyList.add(Extract);
PressClass Press = new PressClass();
Press.pressMethod(MyList);
}
}
两个程序的输出相同。两者有什么区别?以上两个代码中的任何一个都违反了java的规则吗?作为开发者,更喜欢哪一段代码?
【问题讨论】:
-
在您的第一段代码中,您正在添加相同的对象,而在第二段代码中,您正在实例化新对象