如何访问一个Inner类,它位于java中的Enum中

lis*_*isa 2 java enums inner-classes

我想知道我如何访问一个内部类,它在一个枚举中.

例:

  public enum myEnum{

    public class myInnerClass{

    public void aMethod(){

    //do somethink.....
    }
    }
    }
Run Code Online (Sandbox Code Playgroud)

如何在另一个类中访问此类(访问它的方法)?

谢谢你的帮助 :)

Roh*_*ain 6

您可以enum使用它的实例访问内部类,该实例由枚举字段定义:

public enum MyEnum{
    INSTANCE_A,
    INSTANCE_B;

    public class MyInnerClass {
        // This is no different from the inner class in a normal class

        public String show() {
            // You can get the name of the instance for which this method was called.
            System.out.println(MyEnum.this.name());
            return "Hello";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,要创建一个实例MyInnerClass,您可以:

MyEnum instanceA = MyEnum.INSTANCE_A;
MyEnum.MyInnerClass myInnerInstance = instanceA.new MyInnerClass();

System.out.println(myInnerInstance.show());
Run Code Online (Sandbox Code Playgroud)

输出:

INSTANCE_A   // For MyEnum.this.name()
Hello
Run Code Online (Sandbox Code Playgroud)

这种方式与内部类的方式类似,内部类位于普通类中.没有区别.