Я пытаюсь добавить элементы в моей ArrayList называется activList с помощью:NullPointerException при добавлении элементов в ArrayList
activList.add(new Fiducial(iD, x, y));
Но я получаю NullPointerException на этой линии при выполнении кода:
int cols = 10, rows = 10;
int rectangleWidth = 100;
int rectangleHeight = 60;
// these are some helper variables which are used
// to create scalable graphical feedback
int k, l, iD;
float cursor_size = 15;
float object_size = 60;
float table_size = 760;
float scale_factor = 1;
float x, y;
ArrayList<Fiducial> activList ;
public class Fiducial {
public int iD;
public float x;
public float y;
public Fiducial(int iD, float x, float y) {
this.iD = iD;
this.x = x;
this.y = y;
}
}
void draw() {
// Begin loop for columns
for (k = 0; k < cols; k++) {
// Begin loop for rows
for (l = 0; l < rows; l++) {
fill(255);
stroke(0);
rect(k*rectangleWidth, l*rectangleHeight, rectangleWidth, rectangleHeight);
}
}
// This part detects the fiducial markers
float obj_size = object_size*scale_factor;
float cur_size = cursor_size*scale_factor;
ArrayList<TuioObject> tuioObjectList = tuioClient.getTuioObjectList();
for (int i=0; i<tuioObjectList.size(); i++) {
TuioObject tobj= tuioObjectList.get(i);
stroke(0);
fill(0, 0, 0);
pushMatrix();
translate(tobj.getScreenX(width), tobj.getScreenY(height));
rotate(tobj.getAngle());
rect(-80, -40, 80, 40);
popMatrix();
fill(255);
x = round(10*tobj.getX());
y = round(10*tobj.getY());
iD = tobj.getSymbolID();
activList.add(new Fiducial(iD, x, y));
fiducialCoordinates();
}
}
void fiducialCoordinates() {
System.out.println("x= "+ x + " y= " + y + " iD= " + iD);
System.out.println(activList);
}
Я прочитал эту страницу: What is a NullPointerException, and how do I fix it? (так что не сообщайте об этом как дубликаты, пожалуйста)
И я понял, что получаю ошибку, потому что у моего ArrayList нет никаких e lement. Тем не менее, я пытался добавить одну сразу после его создания, например:
ArrayList<Fiducial> activList ;
activList.add(new Fiducial(3, 4.0, 5.0));
Но я получаю ошибку: «неожиданный маркер: (» на линии:
activList.add(new Fiducial(3, 4.0, 5.0));
я не получаю это, я думал, что добавление элемента будет препятствовать его быть Null, но я все еще получаю ошибку. Как я должен изменить это?
Спасибо за вашу помощь
У Вас есть 'ArrayList activList = новый ArrayList () ; 'в любом месте вашего кода? –
Marcin
Эта строка 'ArrayList activList;' должна быть 'ArrayList activeList = new ArrayList ();' –
brso05
Смотрите http://stackoverflow.com/questions/218384 .. то же самое, другой код. Фактическая задача/код в основном не имеет значения. – user2864740