【问题标题】:Java - Check properties file at compile timeJava - 在编译时检查属性文件
【发布时间】:2015-08-27 05:47:03
【问题描述】:

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

我正在做一个项目,它使用一个巨大的常量持有类。

有很多

public static final String CONST_NAME = "const_value";

我得到了那些使用MyConstClass.CONST_NAME 的人,但现在我需要将它们外部化以配置项目。

所以我想到了两种方法:

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

我会用我的其他 java 类编译其中一个。

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

  1. 添加 .properties 文件

这个文件会设置我在代码中需要的每一个常量。

我会用 MyConstants.get("CONST_NAME"); 之类的东西来获取它们

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

但它并不能确保编译时安全,这是避免一些人为错误所必需的。

所以这是我的问题:

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

PS:

我发现了类似 oneother one 这样的主题,但我认为这不是解决问题的方法。

【问题讨论】:

    标签: java maven ant properties


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      当然可以在编译时使用自定义编译器任务等做各种事情,但我认为这不是很实用。

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

      public enum {
          CONST_NAME
      }
      

      MyConstants.get(CONST_NAME)
      

      并在枚举上调用.toString() 以获取文本键表示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-10
        • 2015-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 2020-01-02
        相关资源
        最近更新 更多