是否可以将属性文件转换为枚举。
我有一个带有很多设置的属性文件。例如
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);