В обработке у меня есть ArrayList объектов, построенных из пользовательского класса. Когда я использую функцию .get()
для возврата одного из объектов, кажется, что он возвращает объект в порядке, но я не могу получить доступ к каким-либо переменным или методам объекта. Я получаю сообщение об ошибке «[variable] не может быть разрешен или не является полем». Это ошибка, или я делаю что-то неправильно?Возвращает ли ArrayList.get() то же самое, что и массив []?
Вот образец. Обратите внимание на значения, возвращаемые функцией 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"
};
родственный: [? Что такое сырье типа и почему мы не должны использовать его] (http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why -shouldnt-we-use-it) –