我认为这是一个简单的问题,但却阻碍了我在项目中的前进。为什么当我使用ArrayList
作为一个类到另一个类的引用时,它是空的?
public class FirstClass {
private ArrayList<String> myList = new ArrayList<>();
public ArrayList<String> getMyList() {
return myList;
}
public static void main(String[] args) {
FirstClass fc = new FirstClass();
fc.getMyList().add("Test");
System.out.println(fc.getMyList());
}
}
运行FirstClass.main
时的输出:
x一个一个一个一个x一个一个二个x
运行OtherClass.main
时的输出:
[]
我在Google上搜索了很多次,找到的解决方案都不起作用。我一步一步地遵循,在填充ArrayList
的类中创建一个 * getter * 方法,使用该方法填充它,使用print
方法确保在main
方法的末尾填充数组。ArrayList
是满的并且准备好使用,但是当用作参考时是空的。
3条答案
按热度按时间j7dteeu81#
由于
FirstClass
的新示例是在OtherClass
中创建的,因此OtherClass
中的otherList
为空。oc.otherList
引用的ArrayList与您在main方法中为FirstClass
填充的ArrayList不同。您可以编辑您的
OtherClass
来工作:vhmi4jdf2#
OtherClass创建没有FirstClass主方法的FirstClass,因此它不向列表添加()。
vwhgwdsa3#
你可以做下面这样的事情。
或者一个更好的方法是创建一个向列表添加元素的方法,并通过使用firstclass的object调用该方法在otherclass中读取它。