无法在Java中的另一个对象中查看ArrayList元素
我试图在另一个类中查看ArrayList的元素,但它显示什么都没有。在另一个类中,您可以在ArrayList中看到元素 这是密码 头等舱无法在Java中的另一个对象中查看ArrayList元素,java,arraylist,Java,Arraylist,我试图在另一个类中查看ArrayList的元素,但它显示什么都没有。在另一个类中,您可以在ArrayList中看到元素 这是密码 头等舱 import java.util.ArrayList; public class Test { ArrayList<String> inventory = new ArrayList<String>(); public void test() { inventory.add("item"); } publi
import java.util.ArrayList;
public class Test {
ArrayList<String> inventory = new ArrayList<String>();
public void test() {
inventory.add("item");
}
public void check() {
System.out.println(inventory);
}
}
主类
public class Main {
public static void main(String[] args) {
Test testObj = new Test();
Test2 test2Obj = new Test2();
testObj.test();
testObj.check();
test2Obj.test2();
}
}
输出
[item]
[]
在main方法中,调用处理添加操作的方法,但在第二个类和main方法中不调用任何add方法
testObj.test();
testObj.check();
这显示您将一项添加到arraylist并显示它。但是在第二个类中,除了调用它之外,没有添加任何内容。因此,无法显示该方法中的任何元素。应该做的是,您只需要在第二个类中调用adding方法,然后尝试使用display方法。在java类中,变量是对象关联的,除非它们没有声明为static 通过对象关联的方式,当一个对象在Java中用new关键字初始化时,所有对象都将拥有自己的内存和自己的类变量 在main方法中,当您创建
Test
类的对象时,以及当您在Test2类中创建另一个测试类对象时,这两个类都将彼此完全独立。两者都有自己的内存和变量
如果您希望从第一个对象获得库存
变量的更新,以便在另一个对象中可用,则需要将其声明为静态,并应在静态块内初始化。静态变量在类的所有对象之间共享。详情如下:
static ArrayList<String> inventory;
static {
inventory = new ArrayList<String>();
}
静态数组列表清单;
静止的{
库存=新的ArrayList();
}
您没有在Test2
类中调用test()
方法。
要使其工作,请按如下所示更改Test2
类
import java.util.ArrayList;
public class Test2 {
Test testObj = new Test();
public void test2() {
testObj.test();
System.out.println(testObj.inventory);
}
}
因为它们是不同的物体。每次使用
new
都将创建一个新的、不同的对象,每个对象都包含各自不同的字段集。因此,新的测试中的列表
与Test2
import java.util.ArrayList;
public class Test2 {
Test testObj = new Test();
public void test2() {
testObj.test();
System.out.println(testObj.inventory);
}
}