我的mouseClicked()函数中为什么我的ArrayList长度为0?

时间:2012-03-08 02:45:10

标签: java processing

在我的处理程序中,我在绘图函数中将一个对象添加到全局ArrayList调用的项目中。

这是班级。

class Obj {
    String name;
    Obj(String name) {
        self.name = name;
    }
}

这是我的绘图功能。

void draw () {
    items.add(new Obj("Bob"));
}

我尝试将mouseClicked()函数中的项目大小打印到控制台中,但我一直得到0。

void mouseClicked () {
    print(items.size());
} 

为什么?

在我的课程之后,ArrayList被声明在我文件的顶部:

ArrayList<Obj> items = new ArrayList<Obj>();

1 个答案:

答案 0 :(得分:2)

还有一些事情还没有完成:

  1. self.name = name;应为this.name = name;
  2. 您正在创建大量对象(基于帧速率),但仅在mouseCliked()中检查数组的大小(您也可能希望使用println())。
  3. 试试这个:

    ArrayList<Obj> items = new ArrayList<Obj>();
    
    void setup(){
    
    }
    void draw () {
    
    }
    void mouseClicked () {
      items.add(new Obj("Bob"));
      println("items size: " + items.size());
    } 
    class Obj {
        String name;
        Obj(String name) {
            this.name = name;
        }
    }