Я пытаюсь получить objects
от user1
когда toString()
запускается внутри user2
, но когда я использую super
это относится к Object
вместо user1
. Думаю, мне, возможно, придется использовать отражение, но я не уверен. Как я могу получить super.objects.get(0)
за user1
, когда у ребенка, user2
?получить родительский экземпляр во время выполнения
public abstract class Foo {
public List<Object> objects = new ArrayList<>();
public void add(String string) {
objects.add(string);
}
@Override
public String toString() {
//This line is broken:
Object object = super.objects.get(0);
}
}
>
public class User extends Foo {}
>
public static void main(String args[]) {
User user1 = new User();
User user2 = new User();
user1.add(user2);
user2.toString();
}
'objects.get (0);' получает 'этот' 'объект'. Я пытаюсь получить 'super'' object' – Glo
Нет объекта 'super ', поскольку вы пытаетесь получить его в' Foo', который, как упоминалось, имеет «Object» как суперкласс. Точка, в которой вы, возможно, захотите использовать 'super', будет находиться в' User', но поскольку 'objects' является' public', вам там даже не понадобится. – Dragondraikk