0

我有一个 Java EE 项目,其中我有很多函数调用正在接收一个字符串,并且这个字符串存储在一个不一定在同一个文件中定义的常量中,它有时在一个单独的常量类中定义。我需要检查项目中的所有类并检索这些常量的值。这样做的聪明方法是什么?我考虑过使用反射并加载项目中的每个类(几百个),但我不确定这是最好的方法。

提前致谢。

4

3 回答 3

0

我需要检查项目中的所有类并检索这些常量的值。

您极不可能需要这样做。您创建的 String 将是equals()现有常量,您不应假设它必须是同一个对象。您不应该使用==字符串,因为这是不好的做法。

但是要从字面上回答您的问题,您可以调用它,String.intern()这将为您提供任何现有 String 常量的 String 引用。(或者相同的参考,如果它还没有被定义为这样)

于 2012-09-02T17:40:23.797 回答
0

因为您知道常量的所有名称并且它们在一个类(常量类)中,所以我建议只使用该类。如果常量都在一个类中,则不需要遍历所有其他类。

您可以做的是将参数设置为等于常量名称并使用反射查看常量类(并且仅该类)以获取名称与参数匹配的所有常量的值。

于 2012-09-02T17:02:04.330 回答
0

我不确定我是否完全理解,但基于您知道常量在哪里及其名称的事实,您可以静态导入所有常量类并使用这些值做任何您想做的事情:

public class Constants1 {
    public static final String A = "A";
    public static final String B = "B";
}
public class Constants12 {
    public static final String C = "C";
}

导入常量:

import static constants.Constants1.*;
import static constants.Constants2.*;

public class ConstantsProcessor {

    static String[] constants = {A,B,C};

}
于 2012-09-02T17:50:09.873 回答