Processing には、カスタム クラスから構築されたオブジェクトの ArrayList があります。関数を使用し.get()
てオブジェクトの 1 つを返すと、オブジェクトは問題なく返されるように見えますが、オブジェクトの変数やメソッドのいずれにもアクセスできません。「[変数] を解決できないか、フィールドではありません」というエラー メッセージが表示されます。これはバグですか、それとも何か間違っていますか?
これがサンプルです。関数から返される値に注意してくださいsetup()
。
// regular array
Thing[] thinglist1 = new Thing[1];
// ArrayList array
ArrayList thinglist2 = new ArrayList<Thing>(1);
// instantiate the class
Thing thing = new Thing(12345);
// class definition
class Thing {
int var;
Thing(int i){
var = i;
thinglist1[0] = this;
thinglist2.add(this);
};
};
// run it!
void setup(){
println(thinglist1[0] == thinglist2.get(0));
// true
println(thinglist1[0].var);
// 12345
println(thinglist2.get(0).var);
// ERROR: "var cannot be resolved or is not a field"
};