Я новичок в программировании, поэтому, пожалуйста, со мной. У меня есть следующая проблема, и я не уверен, как ее решить. Я ищу предложения. У меня есть данные экземпляра (см. Ниже). Это то, что я пытаюсь сделать:Инициализация и объявление объектов и методов
Убийство должно быть инициализировано до new KillList()
при объявлении или в конструкторе.
private KillList killring;
KillList класс ребенка в другой класс. Общая программа работает со списками: LinkedLists и ArrayList. Конструктор добавляет элементы из ArrayList в Killring. Новый узел добавляется каждый раз до конца linkelist.
Это то, что я до сих пор:
public class AssassinManager {
private static class AssassinNode {
private String player;
private String killer;
private AssassinNode next;
private AssassinNode(String name) { // to be altered
this.player = name;
this.killer = null;
this.next = null;
}
}// End of AssassinNode - DONE
private KillList killring; //KillList object
private AssassinNode graveyard; //AssassinNodeData object
/* Constructor add names from arralyist to killring
without altering elements in arraylist */
public AssassinManager (ArrayList<String> players) {
if (players == null || players.isEmpty() == true) {
throw new IllegalArgumentException();
}
killring = new AssassinNode(players.get(0)); // AN ERROR IS PRESENTED HERE
}
Это то, что я до сих пор для KillList:
public class KillList extends AssassinNodeData {
public KillList(String player) {
super(player);
}
Возможный ответ:
public AssassinManager (ArrayList<String> players) {
if (players == null || players.isEmpty() == true) {
throw new IllegalArgumentException();
}
killring = new KillList(players.get(0));
KillList node = killring;
for (int i = 1; i < players.size(); i++) {
node.next = new KillList(players.get(i));
node = node.next;
}
}
** Что ** ошибка? О, «KillList» не является «AssassinNode». –
@ElliottFrisch несовместимый не может использовать AssassinNode для класса KillList – Ani
Предположительно 'AssassinNode' должен расширять (или реализовывать)' KillList'. –