java - 如果将泛型类型变量用作类中的字段,它是否应该包含 <T> 表达式?

标签 java list generics

我有一个通用类型节点:

public class Node<T> {

    private T element;
    private Node<T> next;

    public T getElem() {
        return element;
    }

    public Node<T> getNext() {
        return next;
    }

    public void setElem(T newElem) {
        element = newElem;
    }

    public void setNext(Node<T> n) {
        next = n;
    }
}

我将它用作 DynamicList 类中的一个字段:

public class DynamicList<T> implements MyList<T>{
    private Node<T> head;
}

我在使用的时候发现

private Node head;

它不会影响列表行为。那么哪个是正确的?

最佳答案

说真的,它不会影响行为,因为类型在运行时被删除。但是,如果您不指定泛型类型参数,则不会进行类型检查,这可能会导致您出现编程错误。所以第一个是更好的解决方案。如果您使用的编译器配置正确,它应该会告诉您在编写 private Node head; 时您使用的是 Raw 类型。

关于java - 如果将泛型类型变量用作类中的字段,它是否应该包含 <T> 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32716632/

相关文章:

java - 我可以在通用类型上获取 Clazz.class 吗?

java - 当多个线程尝试在JAVA中使用NIO附加内容时是否需要锁定文件?

java - 如何更改为我可以删除的 ValueEventListener?

java - 如何获取具有指定扩展名并排除少数目录的文件列表?

python - 如何在Python中有效地从n个元素的集合列表中生成n+1个元素的集合列表?

c# - 当类型仅在执行时已知时调用泛型函数

java - 在游戏循环中创建新对象与重用临时对象

list - Kotlin:检查列表是否具有特定类型的对象

css - 优化嵌套列表项的 CSS 加载时间

reactjs - 覆盖高阶组件中的 prop 时的泛型推理