我想知道如何访问内部类,它位于枚举中。
示例:
public enum myEnum{
public class myInnerClass{
public void aMethod(){
//do somethink.....
}
}
}
如何在另一个类中访问此类(访问它的方法)?
感谢您的帮助:)
答案 0 :(得分: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";
}
}
}
现在,要创建MyInnerClass
的实例,您可以这样做:
MyEnum instanceA = MyEnum.INSTANCE_A;
MyEnum.MyInnerClass myInnerInstance = instanceA.new MyInnerClass();
System.out.println(myInnerInstance.show());
<强>输出:强>
INSTANCE_A // For MyEnum.this.name()
Hello
这种方式类似于你将如何处理正常类中的内部类。没有区别。
答案 1 :(得分:3)
我的意思是调用内部类的方法
为了能够调用内部类的方法,你需要一个内部类的实例(除了内部类是静态的并且你想调用静态方法的情况)。
要创建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();
}
}
答案 2 :(得分:0)
试试这个
Class cls = myEnum.myInnerClass.class;