为什么构造函数中的全局变量和参数变量具有相同的名称?

时间:2015-04-25 10:07:05

标签: java eclipse

public class ListNode {
ListNode next;
int data;

ListNode (int data) {
    next = null;
    this.data = data;
}

以上代码有效。

    public class Node<E> implements Position<E> {
    private E element;
    private Node<E> left, right, parent;

    public Node<E> (E element, Node<E> parent, Node<E> left, Node<E> right) {

    }
}

这个人没有。

我意识到这是因为构造函数不能包含泛型类型声明,或者它被调用。 <E>不应该在构造函数中。

1 个答案:

答案 0 :(得分:2)

问题在于声明中的参数E,因为它不需要它,因为它已经存在于类型定义中:

Node(E e, Node<E> parent, Node<E> left, Node<E> right)