我如何计算为Java类定义的int成员数?

Pup*_*vin -3 java reflection variables

我有一个存储大量int成员变量的类,每个变量定义如下:

public final static int int1 = int1value;
public final static int int2 = int2value;
...
public final static int int106 = int106value;
Run Code Online (Sandbox Code Playgroud)

还有第二个类需要根据int第一个类中的s 数进行循环.我如何向第一个类添加一个函数来计算这些成员变量?

Bal*_*usC 7

你是如何存储的?在int[]数组或List<Integer>列表中我假设?那将是最合乎逻辑的选择.然后你可以通过intArray.length或获取数字intList.size().

查看Sun教程以了解有关阵列或集合的更多信息.

这些都是所有声明为public static final int字段?为什么不将计数添加为另一个public static final int字段?你事先就已经知道了!或者它必须是第三方课程,你不能以任何方式改变.在原始问题中应该更加明确.

无论如何,你也可以考虑抓住反思.这是一个SSCCE:

package com.stackoverflow.q2203203;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class Test {

    public static final int i1 = 1;
    public static final int i2 = 2;
    public static final int i3 = 3;

    public static void main(String[] args) throws Exception {
        int count = 0;
        for (Field field : Test.class.getDeclaredFields()) {
            if (field.getType() == int.class) {
                int modifiers = field.getModifiers();
                if (Modifier.isPublic(modifiers)
                    && Modifier.isStatic(modifiers)
                    && Modifier.isFinal(modifiers))
                {
                    count++;
                }
            }
        }
        System.out.println(count); // 3
    }

}
Run Code Online (Sandbox Code Playgroud)