我正在使用處理2.0b7。我有一個Spool類,它應該有一個Note對象的ArrayList。在Spool的繪製方法中,我想調用ArrayList的繪製方法中的每個Note。然而,當我嘗試做這個語法,我得到的錯誤在spoolloops「異常試圖通過處理中的ArrayList循環
異常在線程‘動畫主題’顯示java.lang.NullPointerException $ Spool.draw(spoolloops.java:119)在 spoolloops.draw(spoolloops.java:39)at processing.core.PApplet.handleDraw(PApplet.java:2142)at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:193) at processing.core.PApplet。運行(PApplet.java:2020) java.lang.Thread.run(Thread.java:662)
請注意這是Processing環境,它運行某種Java,但在重要方面有所不同。我知道語法是非常不同的,因爲您不必爲類中的方法聲明範圍或返回類型。但由於我不是Java導出,所以我不知道差異的確切原因和原因。
如果你想給出一個答案,請確保它可以在處理中工作,而不僅僅是Java。我非常肯定,這段代碼會在純Java環境中拋出各種錯誤,但這不是它運行的內容,所以沒關係。該平臺是Processing。
class Spool {
int diameter = 50;
int i, angle;
Note note, test;
ArrayList<Note> notes;
void Spool() {
notes = new ArrayList<Note>();
notes.add(note = new Note(100.0,100.0,100.0,100.0,100.0));
notes.add(note = new Note(120.0,120.0,120.0,120.0,120.0));
}
void draw() {
for (int i = 0; i < notes.size(); i++) {
test = (Note)notes.get(i);
test.draw();
}
angle = angle + 1;
if (angle > 360) {
angle = 0;
}
}
}
class Note {
float diameter, x,y, start, stop;
Note(float Diameter, float X, float Y, float Start, float Stop) {
diameter = Diameter;
x = X;
y = Y;
start = Start;
stop = Stop;
}
void turn(float degrees) {
}
void draw() {
strokeWeight(25);
arc(x,y,diameter, diameter, radians(start), radians(stop));
}
}
在for
循環的notes.size()
是什麼似乎引起問題,但是當我將其更改爲i < 1
,在test = (Note)notes.get(i);
出現錯誤。我想ArrayList沒有正確填充註釋對象?