【发布时间】:2016-06-12 00:43:02
【问题描述】:
我有以下问题,我不知道如何解决它。我正在寻找建议。我有一个实例数据(见下文)。这就是我想要做的:
killring 应该在声明时或在构造函数中初始化为new KillList()。
private KillList killring;
KillList 是另一个类的子类。整个程序处理列表:LinkedLists 和 ArrayList。 构造函数将 ArrayList 中的元素添加到 Killring。每次在链接列表的末尾添加一个新节点。
这是我目前所拥有的:
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 类
-
大概
AssassinNode应该扩展(或实现)KillList。 -
@ElliottFrisch 我该怎么做?
-
没有看到
KillList就无法告诉你。
标签: java object constructor