Java 如何在枚举中实例化内部类?
我想知道如何在enum中实例化一个内部类……如果我有这样的代码:Java 如何在枚举中实例化内部类?,java,enums,Java,Enums,我想知道如何在enum中实例化一个内部类……如果我有这样的代码: public enum TestEnum { BIG(1),SMALL(2),LARGE(3); int i; private TestEnum(int i){ this.i = i; } public class cs{ cs c = new cs(){ public void met(){ Sys
public enum TestEnum {
BIG(1),SMALL(2),LARGE(3);
int i;
private TestEnum(int i){
this.i = i;
}
public class cs{
cs c = new cs(){
public void met(){
System.out.println("met in enum inner class");
}
};
}
public static void main(String[] args){
//instantiate an object of cs here
}
}
是否可以实例化?为了创建内部类,您需要外部类(enum)的实例
由于
enum
的内部类是非静态的,因此需要一个对象引用来创建cs的新实例:
TestEnum.cs sample = TestEnum.BIG.new cs();
// ^^^
// This could be any instance of TestEnum
请注意,如果cs
不使用其“所有者”enum,则可以使cs
成为static
嵌套类,这将起作用:
TestEnum.BIG.new cs();
若这样的内部类不在枚举中,而是在简单类中,那个么您将如何实例化它?对于枚举,这是相同的原则。编译器告诉了您什么?请添加更多信息,解释您的答案如何解决问题。
TestEnum.BIG.new cs();