java - 从最终类中获取所有静态字符串值作为字符串数组或列表

标签 java collections java-7

我有以下类(class):

 public final class FileNames
{

    private FileNames()
    {}

    public static final String A                     = "a.csv";
    public static final String B                     = "b.csv";
    public static final String C                     = "123.csv";
    ...
}

现在我想从上面的不同类中的某个位置获取所有字符串值。输出可以是字符串数组或ArrayList或任何其他集合。我使用的是jdk 1.7。不知道如何继续此操作,因为可以增加字符串列表,即可以添加“D”、“E”等.

最佳答案

反射(reflection)是你的 friend :)

public class Sample {

    public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException {
        Class<FileNames> clazz = FileNames.class;
        Field[] arr = clazz.getFields(); // Get all public fields of your class
        for (Field f : arr) {
            if (f.getType().equals(String.class)) { // check if field is a String
                String s = (String)f.get(null); // get value of each field
                // add s to a List
                System.out.println(s);
            }

        }
    }

}

 final class FileNames {

    private FileNames() {
    }

    public static final String A = "a.csv";
    public static final String B = "b.csv";
    public static final String C = "123.csv";

}

操作:

a.csv
b.csv
123.csv

关于java - 从最终类中获取所有静态字符串值作为字符串数组或列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36455239/

相关文章:

java - 在 Spring MVC 中将变量传递给模板 View

java - 列表(ArrayList)比较

java - GWT 与 JDK 7 新特性的兼容性

java - 查找两个数组的并集

java - 我正在更新 Firebase 中一个对象的子对象,然后使用事件监听器拉取同一对象,但它没有更新 UI?

java - 如何应用一对多和多一注释(Java Persistence)

java - htmlunit 在运行项目后总是给出多个 javascript 异常

ruby-on-rails - rails : rendering collections as tr with a table around it?

java - 在 ArrayList 中查找所需数量的最小 double

java - 如何从自定义对象列表中获取特定属性值的数组