java - 类型中的方法不适用于参数

标签 java generics linked-list

我正在尝试制作一款纸牌游戏,但遇到了一些小问题。我正在尝试在我的新列表卡中添加来自另一个类的卡 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/

相关文章:

c - 链接列表更改

有人可以帮助我了解以下功能中发生了什么吗?

java - 导入 .dat 文件 Java

AppFabric 缓存的 Java 客户端?

scala - 特征的多个类型实例中的类型差异

java - 类中的静态泛型方法 - Java

c - 使用链接列表时 While 循环失败

Java regex lookbehind 不能像 js regex lookbehind 那样工作

java - 如何使用临时 Web 服务(非 SOAP、无模式 XML)?

java - 如何将 "Type type = new TypeToken<List<Mybean>>(){}.getType()"中的Mybean更改为参数?