是否可以将属性文件转换为枚举。
我有一个带有很多设置的属性文件。例如
equipment.height
equipment.widht
equipment.depth
and many more like this and not all are as simple as the example
开发人员必须知道密钥才能获得属性的值。而是可以做一些事情,开发人员可以在其中键入MyPropertyEnum。并且键列表将显示在IDE中,就像它显示为Enum一样
MyPropertyEnum.height
我经常使用属性文件+枚举组合。这是一个例子:
public enum Constants {
PROP1,
PROP2;
private static final String PATH = "/constants.properties";
private static final Logger logger = LoggerFactory.getLogger(Constants.class);
private static Properties properties;
private String value;
private void init() {
if (properties == null) {
properties = new Properties();
try {
properties.load(Constants.class.getResourceAsStream(PATH));
}
catch (Exception e) {
logger.error("Unable to load " + PATH + " file from classpath.", e);
System.exit(1);
}
}
value = (String) properties.get(this.toString());
}
public String getValue() {
if (value == null) {
init();
}
return value;
}
}
现在,您还需要一个属性文件(我经常将其放在src中,因此将其打包到JAR中),其属性与在枚举中使用的一样。例如:
constants.properties:
#This is property file...
PROP1=some text
PROP2=some other text
现在,我经常在要使用常量的类中使用静态导入:
import static com.some.package.Constants.*;
以及示例用法
System.out.println(PROP1);
如何使用属性文件在应用程序中存储全局变量,同时使用公共静态最终变量将它们注入应用程序? 看过这个问题后,我希望找到一种方法,可以从属性文件将静态final变量注入到应用程序中。我很失望,但最终找到了一个鱼与熊掌兼得的方法。 我在下面张贴这个解决方案,以添加到简编所以...
问题内容: 在.properties文件中,我可以在第一个字符之后使用字符’=’吗? 像这样: 是否允许?如果确实允许,我在哪里可以知道允许? 到目前为止,它似乎仍然有效,但我不太确定它以后是否会失效。 问题答案: 您可以在和之前放置反斜杠转义字符。 或者最好使用下面的代码来打印出如何 转义 您的财产: 输出: 另外,请查看Java API信息
问题内容: 我已经阅读了Java和C++之间的枚举差异问题?但是我还是很困惑。 我想以下返回相关的字符串: 据我所读,这应该是可能的。只是希望您对如何实现它有所了解。 问题答案: 简短答案 您需要一个构造函数,一个字段和一个吸气剂。 建设者 枚举类型可以具有构造函数,只要它们的访问级别为私有或默认(包私有)即可。除了枚举声明本身之外,您不能直接调用这些构造函数。与类相似,当定义不带参数的枚举常量时
问题内容: 我在程序中需要一个配置文件来存储一些信息,我看到了一些属性文件的示例,并试图使用它们,但是每当在NetBeans上尝试第二行时,我都会得到“ Package sortConfig不存在”,“ >预期”和“类型非法开始”。 问题是我已经看到大约10个示例都以相同的方式执行此操作,而我不知道发生了什么。 任何帮助,将不胜感激 我的.java类和我的属性文件位于src的同一包文件夹中 问题答
问题内容: 我有以下代码尝试读取属性文件: 我在最后一行有一个例外。特别: 问题答案: 根据你的异常,该值为null,这意味着类加载器未找到你的属性文件。我猜测myProp.properties位于项目的根目录中,如果是这种情况,则需要前面的斜杠:
问题内容: 在属性方面,我是一个新手,我读到XML是存储这些属性的首选方法。但是我注意到,以 也可以。这意味着更少的打字(也许更容易阅读,也更有效)。那么使用XML文件有什么好处? 问题答案: 在XML中,您可以存储比属性文件中更复杂的数据(例如,层次结构)。因此,这取决于您的用例。如果您只想存储少量直接属性,则更容易处理属性文件(尽管Java属性类也可以读取基于XML的属性)。 无论如何,保持配