java - 有什么方法可以将 Constants 类中的 Java 常量转换为另一个类中的迭代形式吗?

标签 java arrays constants iteration

我有一个常量类,其中充满了一堆最终静态字符串。我需要一种方法以良好的数组类型形式访问此类中的所有这些常量,而无需手动创建包含每个常量的数组。

类上是否有任何类型的方法可以给我返回一个迭代数据结构,我可以在另一个类中循环遍历?

谢谢!

最佳答案

您可以使用反射来获取声明的字段:

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

public class field1 {
    private double d;
    public static final int i = 37;
    String s = "testing";

    public static void main(String args[]) {
        field1 f = new field1();

        try {
            Class cls = Class.forName("field1");

            Field fieldlist[] = cls.getDeclaredFields();
            for (Field field : fieldlist) {
                System.out.println("name = " + field.getName());
                System.out.println("decl class = " + field.getDeclaringClass());
                System.out.println("type = " + field.getType());

                int mod = field.getModifiers();
                System.out.println("modifiers = " + Modifier.toString(mod));
                System.out.println("value = " + field.get(f));
                System.out.println("-----");
            }
        } catch (Throwable e) {
            System.err.println(e);
        }
    }
}

该样本来自here

关于java - 有什么方法可以将 Constants 类中的 Java 常量转换为另一个类中的迭代形式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6048815/

相关文章:

java - 从 Java BlockingQueue 获取之前进行检查

java - Android 上的 Firebase 自动重新连接

java - 这种对象的使用是否多余和/或效率低下?

现有 String 数组中的 Java String 数组

java - CDI GenericDAO 和自定义实现

java - 有没有一种方法可以在不使用递归的情况下比较列表中相对位置内的项目?

c++ - .begin() 和 .end() 的意义何在?

java - 我无法正确打印我的卡片对象

C++,改变地址指针指向(指向一个常量值)

c++ - 有什么区别 - const int x = 5000;和 const int x = 50'00;在 C++ 中?