Java 使用非默认构造函数初始化

Java 使用非默认构造函数初始化,java,class,constructor,Java,Class,Constructor,我试图创建一个带有非默认承包商的LinearNode类,但传递了两个参数。我试过了,但有个错误。知道为什么吗 public class LinearNode<T> (T elem, LinearNode<T> node){ private LinearNode<T> next = node; private T element = elem; } 公共类线性节点(T元素,线性节点){ private LinearNod

我试图创建一个带有非默认承包商的LinearNode类,但传递了两个参数。我试过了,但有个错误。知道为什么吗

public class LinearNode<T> (T elem, LinearNode<T> node){
        private LinearNode<T> next = node;
        private T element = elem;
    }
公共类线性节点(T元素,线性节点){
private LinearNode next=节点;
私有T元素=元素;
}
谢谢

类声明不能包含
(参数)

而且


不能为局部变量指定访问说明符
private

您已将构造函数与类定义混合。构造函数是一个特殊的成员函数,应该或多或少像方法一样定义它(没有返回类型,并且与类同名)

公共类线性节点{
其次是专用线性节点;
私有T元素;
线性节点(T元素,线性节点){
下一个=节点;
元素=元素;
}
}

构造函数声明需要与类声明分开。像这样:

public class LinearNode<T>{
    private LinearNode<T> next;
    private T element;
    LinearNode<T>(T elem, LinearNode<T> node){
        next = node;
        element = elem;
   }
}
公共类线性节点{
其次是专用线性节点;
私有T元素;
线性节点(T元素,线性节点){
下一个=节点;
元素=元素;
}
}

回答正确,但可能需要一些解释。这个网站不是一个让人们为你写代码的地方。好吧,我认为这个例子太小了,它可以自己解释。但你是对的。
public class LinearNode<T>{
    private LinearNode<T> next;
    private T element;
    LinearNode<T>(T elem, LinearNode<T> node){
        next = node;
        element = elem;
   }
}