3

java新手,我确实搜索了示例,但我真的很难。

我有一个使用泛型的节点类:

public class Node<T> {

    private int key;
    private T data;
    private Node<T> nextNode;

}

节点没问题。

public class GenericDictionary implements GenericDictionary_interface {

    private int capacity;
    private Node<T> [] slots;

    public void add (Node<T> newNode) {

    }
}

我想,这就是我会写它的方式。我希望 GenericDictionary 与节点对象一起工作。

我收到一个错误:“T 无法解析为类型”。

问题是我不知道它应该是什么样子。

4

2 回答 2

9

您的GenericDictionary课程也需要是通用的:

public class GenericDictionary<T> ...
{
}

到那时,Node<T>在课堂上使用就可以了。

如果接口包含该add方法,则该接口也应该是通用的:

public class GenericDictionary<T> implements Dictionary<T>
{
}

顺便说一句,我建议不要使用名为 的接口GenericDictionary_interface......如果只有一个实现,你可以调用接口GenericDictionary和实现GenericDictionaryImpl- 有点可怕,但相当普遍。如果有多个实现,请通过一些不同的方面来命名实现。

于 2012-10-24T09:22:23.007 回答
3

在您的第二个中,它不知道 T 是什么类型,因此您需要将其添加到声明中

public class GenericDictionary<T> implements GenericDictionary_interface {

private int capacity;
private Node<T> [] slot;

public void add (Node newNode) {

}

}

于 2012-10-24T09:22:41.680 回答