首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将最后一个类中的所有静态字符串值作为字符串数组或列表获取

将最后一个类中的所有静态字符串值作为字符串数组或列表获取
EN

Stack Overflow用户
提问于 2016-04-06 15:11:41
回答 2查看 3.5K关注 0票数 2

我有以下课程:

代码语言:javascript
复制
 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";
    ...
}

现在我想从上面获得所有的字符串值,在不同的class.Output中的某个地方可以作为字符串数组、ArrayList或任何其他集合。我正在使用JDK1.7。不知道如何继续这样做,因为字符串列表可以增加,例如可以添加"D“、"E”等。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-06 15:18:37

反射是你的朋友:)

代码语言:javascript
复制
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";

}

O/P:

代码语言:javascript
复制
a.csv
b.csv
123.csv
票数 4
EN

Stack Overflow用户

发布于 2016-04-06 15:23:10

您可以添加以下功能:

代码语言:javascript
复制
public static ArrayList<String> getFilenames() {
   ArrayList<String> filenames = new ArrayList<String>;

   filenames.add(A);
   filenames.add(B);
   filenames.add(C);

   return filenames;
}

然后,您可以在这样的地方使用这个函数:

代码语言:javascript
复制
ArrayList<String> filenames = new ArrayList<String>;
filenames = Filenames.getFilenames();
String filenameA = filenames.get(0); // to retrieve the first element (A)
String filenameB = filenames.get(1); // to retrieve the second element (B)
// and so on...

如果您想要添加更多内容并以自动方式进行转换,可以检查以下内容:Java method with unlimited arguments

我希望我能帮你。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36455239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档