Как мне создать некоторые объекты для хранения в arrayList, который является атрибутом подкласса, из родительского класса в Java? - PullRequest
0 голосов
/ 24 марта 2019

Итак, у меня есть 3 класса, Lair, LairLocation и Minion. Я создал ArrayList, который должен хранить объекты Minion, и это атрибут LairLocation. Я должен создать несколько объектов для хранения в ArrayList из родительского класса Lair. И LairLocation, и Minion, и подклассы Lair.

Всякий раз, когда я пытаюсь создать объекты для хранения в ArrayList от моего родителя, я получаю сообщение об ошибке «Миньон не может быть решен» и просит создать локальную переменную и т. Д. Пожалуйста, помогите

LairLocation 

'''
public class LairLocations extends Lair
{
        public static ArrayList<Minion> minions = new ArrayList<Minion>();
}
'''

Lair

'''
public class Lair
{
        public void createMinions() 
    {
        minions.add("12", "Mine", "Me");//This is giving me the error 
    }
}
'''

Minion
'''
public class Minion extends Lair
{

    private String id;
    private String fName;
    private String lName;

    public Minion(String Id, String fName, String lName) 
    {
        this.id = id;
        this.fName = fName;
        this.lName = lName;
    }
}
'''

Ответы [ 2 ]

0 голосов
/ 24 марта 2019

Вам нужно позвонить new Minion(), чтобы получить нового миньона.

minions.add( new Minion( "12", "Mine", "Me") );
0 голосов
/ 24 марта 2019

Вы пытаетесь получить доступ к полю подкласса из его родительского класса. Это не работает таким образом.

Вы можете получить доступ только к полям родительского класса (если они общедоступны или защищены).

Таким образом, вы должны либо переместить свое поле minions в родительский класс Lair (и, между прочим, сделать его нестатичным), либо получить доступ к этому объекту через класс LairLocation: LairLocation.minions() (если поле должен быть статическим).

Также эта строка кода неверна: minions.add("12", "Mine", "Me");

Метод add() принимает только один элемент.

Вероятно, должно быть: minions.add(new Minion("12", "Mine", "Me"));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...