0

class Kの静的クラスであるかどうかを確認しようとしていますA

class A {
    private static class K {
        static final int MODE1 = 1;
        static final int MODE2 = 2;
    }
}

Class<?> c = A.class;
for( Class<?> item: c.getDeclaredClasses() ) {
    if( Modifier.isStatic(item.getModifiers()) ) {
        if( "K".equals(item.getSimpleName()) ) {
            // found it!
        }
    }
}

これが唯一の方法ですか?宣言されたすべてのクラスを反復するには? メソッドにはgetDeclaredMethod()、フィールドには がありますgetDeclaredField()が、TTBOMK には何もないgetDeclaredClass()か、似たようなものがあります。

4

1 に答える 1

2

こんな感じですか?

Class a = A.class;
Class k = Class.forName(a.getName()+"$K");

頻繁に行われるとは思わないので、もっと「フレンドリーな」方法がないかもしれません。

于 2013-06-05T06:55:31.580 に答える