Java 构建一个类的集合';内部类

Java 构建一个类的集合';内部类,java,Java,在伪代码中,我得到: abstract class Event { ... public static class MouseEvent extends Event { ... } public static class KeyboardEvent extends Event { ... } public static class NetworkEvent extends Event { ... } } 是否有一种简洁的方法来获取所有内部类子类的名称/详细信息的

在伪代码中,我得到:

abstract class Event
{
 ...
 public static class MouseEvent extends Event
 {
  ...
 }
 public static class KeyboardEvent extends Event
 {
  ...
 }
 public static class NetworkEvent extends Event
 {
  ...
 }
}

是否有一种简洁的方法来获取所有内部类子类的名称/详细信息的集合?最好是作为基本
事件
类的方法…

我相信您需要
事件.class.getDeclaredClasses()

然而,我认为您正在寻找一种更开放的扫描机制,它不局限于内部类。基于这个问题,看起来并没有一个直接的方法来做到这一点

Spring框架通过注释扫描完成了类似的工作(请参阅),但他们的方法不是直接的方法调用

    public static void main(String[] args) {
        for (Class c : OuterClass.class.getClasses())
        {
            System.out.println(c.getName());
        }
    }
然后你就可以上

public class OuterClass {

    public class InnerClass {

    }

    public class InnerClassA {

    }

    public class InnerClassC {

    }
}
生成的打印语句是

OuterClass$InnerClass
OuterClass$InnerClassA
OuterClass$InnerClassC

如果我只想添加扩展
Event
的限制类怎么办?这不应该是
Event.class.getDeclaredClasses()
public class OuterClass {

    public class InnerClass {

    }

    public class InnerClassA {

    }

    public class InnerClassC {

    }
}
OuterClass$InnerClass
OuterClass$InnerClassA
OuterClass$InnerClassC