作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将对象放入链表时遇到问题。这是代码:
if(runTypes[k]==EMPTY){
Empty creature = new Empty();
}
else if(runTypes[k]==FISH){
Fish creature = new Fish();
}
else if (runTypes[k]==SHARK){
Shark creature = new Shark(starveTime);
}
DLinkedList.insertEnd(creature,runLengths[k]);
但是我得到一个错误:
RunLengthEncoding.java:89: cannot find symbol
symbol : variable creature
location: class RunLengthEncoding
DLinkedList.insertEnd(creature,runLengths[k]);
^
1 error
Empty() 是 Fish 和 Shark 的父类(super class)。
下面是循环LinkedList类中insertEnd方法的代码:
public void insertEnd(Empty creature, int number) {
DListNode3 node = new DListNode3(creature);
head.prev.next = node;
node.next = head;
node.prev = head.prev;
head.prev=node;
node.amount = number;
size++;
}
这是节点的代码: 公共(public)类 DListNode3 {
public Empty creature;
public DListNode3 prev;
public DListNode3 next;
public int amount;
DListNode3(Object creature) {
this.creature = creature;
this.amount = 1;
this.prev = null;
this.next= null;
}
DListNode3() {
this(null);
this.amount = 0;
}
}
我不知道该怎么做,而且我是 OOP 的新手。有什么建议吗?
最佳答案
当你我们声明一个变量如下-
if(runTypes[k] == EMPTY) {
Empty creature = new Empty();
}
该变量是声明它的 block ({}
) 的本地变量。而且在那个街区之外是不可见的。
而你正试图在外面使用它 -
DLinkedList.insertEnd(creature,runLengths[k]);
看不见的地方。所以,编译器在提示。
您可以执行以下操作来解决问题 -
Empty creature = null; //Empty can be the variable type, it's the parameter type in the insertEnd method
if(runTypes[k] == EMPTY) {
creature = new Empty(); //no problem, it's the same class
} else if(runTypes[k] == FISH) {
creature = new Fish(); //no problem, Fish is a subclass
} else if (runTypes[k] == SHARK) {
creature = new Shark(starveTime); //no problem, Shark is a subclass of Empty
}
DLinkedList.insertEnd(creature, runLengths[k]);
关于java - 传递不同类Java的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16973269/
所以我有这个 UltraTicTacToe 游戏,我正在用 HTML/CSS/JS 编码。它由表中表中的表组成。当您单击 X 或 O 时,我想要突出显示您应该进入的下一个 TicTacToe 牌 ta
Some text Some more text 如何让每个 .example 的 .whatever 包含其 .test 的内容? 例如,如果代码是这样的: Som
我是一名优秀的程序员,十分优秀!