有没有办法通过Java中的Reflection获取InnerClasses列表?

unj*_*nj2 4 java reflection

有没有办法通过Java中的Reflection知道类具有的内部类?

Bal*_*usC 6

是的,Class#getDeclaredClasses()用于此.您只需要通过检查其修饰符来确定它是内部类还是嵌套(静态)类.假设这Parent是父类,这是一个启动示例:

for (Class<?> cls : Parent.class.getDeclaredClasses()) {
    if (!Modifier.isStatic(cls.getModifiers())) {
        // This is an inner class. Do your thing here.
    } else {
        // This is a nested class. Not sure if you're interested in this.
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:这只是不包括匿名类,但是看到你之前关于这个主题的问题,我认为你没有明确要求它们.