我正在尝试制作一款纸牌游戏,但遇到了一些小问题。我正在尝试在我的新列表卡中添加来自另一个类的卡 currentCard。我收到错误 SingleLinkedList 类型中的方法 addLast(Card) 不适用于参数 (DoubleLinkedList.Element)。
public class CardList<E extends Comparable<? super E>> extends SingleLinkedList<E> {
private SingleLinkedList<Card> cards;
private int cardRow;
public CardList(int cardRow) {
this.cardRow = cardRow;
cards = new SingleLinkedList<Card>();
cards.addLast(CardDeck.currentCard); // here is the error
}
}
我在 SingleLinkedList 中的 addLast 方法:
public class SingleLinkedList<E> {
protected transient Element<E> head;
protected transient int size;
public SingleLinkedList() {
head = null;
size = 0;
}
public void addLast(E value) {
Element<E> temp = new Element<E>(value, null);
if (head != null) {
Element<E> finger = head;
while(finger.next != null) {
finger = finger.next;
}
finger.next = temp;
} else {
head = temp;
}
size++;
}
元素类(在 singlelinkedlist 类内)
protected static class Element<E> {
public E value;
public Element<E> next;
public Element(E value, Element<E> next) {
this.value = value;
this.next = next;
}
}
以及 DoubleLinkedList 类中的 currentCard 变量
public class CardDeck<E extends Comparable<? super E>> extends DoubleLinkedList<E> {
private DoubleLinkedList<Card> cards;
static Element<Card> currentCard;
我知道问题是我正在尝试将一个元素插入到期望获得卡片的方法中,但我只是不知道如何将其从泛型转换为特定类型(卡片)或其他类型。我一直在寻找一些关于泛型的好教程,但还没有找到可以直接帮助我的东西。因此,如果有人有一些直接解决我的问题的技巧,或者有关于该主题的教程/描述的良好链接,我将非常感激!
如果您需要更多信息,或者我需要重新措辞,请告诉我:)
最佳答案
我认为你应该做currentCard
类型变量 Card
而不是输入 Element<Card>
。
关于java - 类型中的方法不适用于参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23556477/