我想知道如何访问枚举中的内部类。
例子:
public enum myEnum{
public class myInnerClass{
public void aMethod(){
//do somethink.....
}
}
}
我如何在另一个类中访问这个类(访问它的方法)?
谢谢你的帮助 :)
我想知道如何访问枚举中的内部类。
例子:
public enum myEnum{
public class myInnerClass{
public void aMethod(){
//do somethink.....
}
}
}
我如何在另一个类中访问这个类(访问它的方法)?
谢谢你的帮助 :)
您可以使用它的实例访问内部类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";
}
}
}
现在,要创建 的实例MyInnerClass
,您将执行以下操作:
MyEnum instanceA = MyEnum.INSTANCE_A;
MyEnum.MyInnerClass myInnerInstance = instanceA.new MyInnerClass();
System.out.println(myInnerInstance.show());
输出:
INSTANCE_A // For MyEnum.this.name()
Hello
这种方式类似于您对普通类内部的内部类所做的方式。没有区别。
我的意思是调用内部类的方法
为了能够调用内部类的方法,您需要一个内部类的实例(内部类是静态的并且您想要调用静态方法的情况除外)。
要创建 innerClass 的对象,您可以执行SSS.INSTANCE.new A();
(下面的类)
或者您可以声明它,static
然后您将像使用普通类一样使用它。
public enum SSS {
INSTANCE;
public static class A {
}
public static void main(String[] args) {
SSS.A a = new SSS.A();
}
}
尝试这个
Class cls = myEnum.myInnerClass.class;