好的,所以我试图获取课程的属性数。我看过两个相关的问题,但他们并没有完全回答这个问题。
这两个问题是,
SomeClass.class.getDeclaredFields().length
和
SomeClass.class.getDeclaredMethods().length
并不能完全回归我所期望的。我得到了样本课:
SomeClass {
public static final int ONE = 1, TWO = 2, THREE = 3;
public static int someMethodOne(){}
public static int someMethodTwo(){}
}
声明的字段返回5,根据this是错误的,应该是3.声明的方法也没有帮助,因为它返回3,而只有2个声明的方法。这有什么问题?
编辑: 试图用Java 8& Android Studio
答案 0 :(得分:0)
当我运行下面的代码时,我按预期得到3
和2
。如果您获得其他值,您还可以打印字段和方法的名称(见下文)。
public class SomeClassChecker {
public static void main(String[] args) {
System.out.println(SomeClass.class.getDeclaredFields().length);
System.out.println(SomeClass.class.getDeclaredMethods().length);
for (Field field : SomeClass.class.getDeclaredFields()) {
System.out.println("field: " + field.getName());
}
for (Method method : SomeClass.class.getDeclaredMethods()) {
System.out.println("method: " + method.getName());
}
}
}
Java 8&日食。我得到了这个(预期的)输出:
3
2
field: ONE
field: TWO
field: THREE
method: someMethodOne
method: someMethodTwo