尝试检查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()
或类似的字段。
答案 0 :(得分:2)
你的意思是这样吗?
Class a = A.class;
Class k = Class.forName(a.getName()+"$K");
我不认为经常会这样做,所以你可能没有更“友好”的方法。