在Java中使用泛型类和泛型方法很难

时间:2012-10-24 09:20:35

标签: java generics

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无法解析为类型”。

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

2 个答案:

答案 0 :(得分:9)

您的GenericDictionary课程也必须是通用的:

public class GenericDictionary<T> ...
{
}

此时,在课堂上使用Node<T>会很好。

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

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

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

答案 1 :(得分:3)

在你的第二个中,它不知道T是什么类型,所以你需要将它添加到声明中

public class GenericDictionary<T> implements GenericDictionary_interface {

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

public void add (Node newNode) {

}

}