Java 如何使用构造函数初始化内部类的新字段?
如果我有这个类,并且我想初始化一个类型为Java 如何使用构造函数初始化内部类的新字段?,java,initialization,inner-classes,Java,Initialization,Inner Classes,如果我有这个类,并且我想初始化一个类型为Element的新字段, 我怎么能做到 public class MyLinkedList{ protected Element head, tail; public final class Element{ Object data; int priority; Element next; Element(Object obj, int priorit, Element element){
Element
的新字段,
我怎么能做到
public class MyLinkedList{
protected Element head, tail;
public final class Element{
Object data;
int priority;
Element next;
Element(Object obj, int priorit, Element element){
data = obj;
priority = priorit;
next = element;
}
}
}
当我尝试这样做时,它给了我一个错误
public class PriorityTest{
public static void main(String[]args){
MyLinkedList.Element e1 = new MyLinkedList.Element("any", 4, null);
}
}
使内部钙保持静止
public class MyLinkedList{
protected Element head, tail;
public static final class Element{
Object data;
int priority;
Element next;
Element(Object obj, int priorit, Element element){
data = obj;
priority = priorit;
next = element;
}
}
public static void main(String[]args){
MyLinkedList.Element e1 = new MyLinkedList.Element("any", 4, null);
}
}
试试这个
MyLinkedList.Element e1 = new MyLinkedList().new Element("any", 4, null);
您的内部类不是静态的,因此您需要首先创建外部类的对象。由于内部类不是静态的,内部类的实例不能单独存在。如果这是您想要的,请声明内部类static。非常感谢,但是当我尝试编译它时,它显示了以下错误:错误:包含MyLinkedList.Element的封闭实例需要MyLinkedList.Element e1=new MyLinkedList.Element(新字符串(“任意”),4,null);或者,如果元素类不需要引用列表的
head
和tail
,则将其设置为静态类而不是内部类。