Java - 在编译时检查属性文件

Java - Check properties file at compile time

今天我需要你的一些建议。

我正在做一个项目,它使用了一个巨大的常量来保持 class。

有很多

public static final String CONST_NAME = "const_value";

我正在使用 MyConstClass.CONST_NAME 获取它们,但现在我需要将它们外部化以配置项目。

所以我想到了两种方法:

  1. 通过多个配置项目MyConstants.java

我会用我的 java classes 的其余部分编译其中一个。

由于这些是常量,因此将确保编译时安全。

  1. 添加 .properties 文件

此文件将设置我在代码中需要的每个常量。

我会用 MyConstants.get("CONST_NAME");

之类的东西得到它们

比拥有多个 java classes(对吗?)要优雅得多,您将/不会与项目的其余部分一起编译。

但是它并不能确保编译时的安全性,而编译时的安全性对于避免一些人为错误是非常必要的。

所以这是我的问题:

  1. 是否可以在编译时检查我通过 MyConstants.get("CONST_NAME"); 获得的所有属性是否存在于我的 .properties 文件中?
  2. 有没有更好的方法?

PS:

我找到了类似这样的主题 one and this other one,但我认为这不是解决问题的方法。

当然可以在编译时使用自定义编译器任务等执行各种操作,但我认为这不太实用。

就个人而言,我有一个 属性 键的枚举和 属性 文件的值配置 - 类似于:

public enum {
    CONST_NAME
}

MyConstants.get(CONST_NAME)

和 calling.toString() 在枚举上获取文本键表示。

我同意总有办法的。但我认为最简单的方法是编写一个单元测试来检查是否设置了所有配置值。这样,如果配置不完整,您可以使构建失败。