我有以下类(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/