仅获取java类的属性计数

时间:2017-12-07 11:16:10

标签: java android class properties

好的,所以我试图获取课程的属性数。我看过两个相关的问题,但他们并没有完全回答这个问题。

question one

question two

这两个问题是,

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

1 个答案:

答案 0 :(得分:0)

当我运行下面的代码时,我按预期得到32。如果您获得其他值,您还可以打印字段和方法的名称(见下文)。

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