Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调用方法时,java ArrayList始终为空_Java_Arraylist_Size_Zero_Empty List - Fatal编程技术网

调用方法时,java ArrayList始终为空

调用方法时,java ArrayList始终为空,java,arraylist,size,zero,empty-list,Java,Arraylist,Size,Zero,Empty List,我的程序很简单。我有一个有两种方法的类。我有另一个类,其中调用了这两个方法。当调用第一个方法时,将初始化arraylist并用一些对象填充,然后调用第二个方法来简单地告诉arraylist的大小并将其打印出来。我不明白为什么调用第二个方法时总是得到一个空的。然而,当我在第一个方法中打印数组时,我得到了大小和它的所有元素。Arraylist是公共的。。请看一下代码 在第1班 Items initialize = new Items(); initialize.init(); Items view

我的程序很简单。我有一个有两种方法的类。我有另一个类,其中调用了这两个方法。当调用第一个方法时,将初始化arraylist并用一些对象填充,然后调用第二个方法来简单地告诉arraylist的大小并将其打印出来。我不明白为什么调用第二个方法时总是得到一个空的。然而,当我在第一个方法中打印数组时,我得到了大小和它的所有元素。Arraylist是公共的。。请看一下代码

在第1班

Items initialize = new Items();
initialize.init(); 
Items view = new Items();
view.viewItems();
在第二班

public class Items {

public String id;
public String name;
public String details;
public String stock;

public ArrayList<Items> myList = new ArrayList<Items>();

public void init(){

    Items item1 = new Items();


item1.id = "0023";
item1.name = "Round Table";
item1.details = "Brown, high quality wood blah blah..";
item1.stock = "34";
myList.add(item1);


if(myList.size()==0){
        System.out.println("There are no products to display");
    }

    Iterator<Items> iterator = myList.iterator();
    System.out.println(myList.size());
            System.out.println("Products Available:");
    while(iterator.hasNext()){
        Items current = iterator.next();

        System.out.println("\nID: " +current.id + "\nTitle: "+current.name+"\nDescreption: "+current.details+"\nAmount: "+current.stock);

}

public void viewItems() {

int size  = myList.size();

if(myList.size()==0){
        System.out.println("There are no products to display");
    }

    Iterator<Items> iterator = myList.iterator();
    System.out.println(myList.size());
            System.out.println("Products Available:");
    while(iterator.hasNext()){
        Items current = iterator.next();

        System.out.println("\nID: " +current.id + "\nTitle: "+current.name+"\nDescreption: "+current.details+"\nAmount: "+current.stock);



}
公共类项目{
公共字符串id;
公共字符串名称;
公共字符串详细信息;
公开发行股票;
public ArrayList myList=new ArrayList();
公共void init(){
Items item1=新项目();
项目1.id=“0023”;
item1.name=“圆桌会议”;
项目1.details=“棕色、优质木材布拉布拉布拉……”;
项目1.stock=“34”;
添加(第1项);
如果(myList.size()==0){
System.out.println(“没有要显示的产品”);
}
迭代器迭代器=myList.Iterator();
System.out.println(myList.size());
System.out.println(“可用产品:”);
while(iterator.hasNext()){
Items current=iterator.next();
System.out.println(“\nID:+current.id+”\n标题:+current.name+”\n声明:+current.details+“\n计数:+current.stock”);
}
公共void viewItems(){
int size=myList.size();
如果(myList.size()==0){
System.out.println(“没有要显示的产品”);
}
迭代器迭代器=myList.Iterator();
System.out.println(myList.size());
System.out.println(“可用产品:”);
while(iterator.hasNext()){
Items current=iterator.next();
System.out.println(“\nID:+current.id+”\n标题:+current.name+”\n声明:+current.details+“\n计数:+current.stock”);
}

因此,结果是,当调用第一个方法时,我可以看到添加或删除产品的项目和尺寸编号(已经做了很多实验)调用另一个方法时,大小和空数组的值始终为0。我使用公共字符串尝试过这一点,并且方法在调用时会更改字符串。因此,我猜这是ArrayList的问题。谢谢!

您正在创建一个
项的新实例
,然后调用
viewItems()
method。必须在调用
init()的同一实例上调用viewItems()


你让我开心!我花了2个小时关注arraylist,并在arraylist根本不存在的情况下搜索它周围的问题!谢谢!!!
Items initialize = new Items();
initialize.init(); 
initialize .viewItems();