0

我创建了一个库项目并将我的属性存储在一个 .properties 文件(release.properties 和 test.properties)中。我使用 Properties 对象访问它们,我访问的文件取决于布尔值(DEBUG true/false)。

但是,如果我创建一个使用我的 lib 项目的应用程序项目,并且如果此应用程序项目的 ONE 属性值与 lib 不同,我必须将整个文件复制到我的应用程序项目中并更改不同的一行.

这是一个糟糕的情况。如果我在我的库项目中的 .properties 中添加一行,我将不得不将它添加到所有应用程序项目中,这与更改 lib 项目中的一行相同。

问题是 app-project 中的 .properties 文件覆盖了 lib-project 中的整个文件,这种覆盖不是基于行的。

有针对这个的解决方法吗?

4

1 回答 1

0

答案是创建一个 CustomProperties 类,该类在初始化时将两个属性文件 default.properties(来自库项目)和 my.properties(来自应用程序项目)加载到 2 个不同的 Properties 对象中。

在 CustomProperties 中:为 String、int、boolean 等创建 getter,并在这些方法中检查 my.properties 是否包含该值,如果是则返回此值,如果不返回则从 default.properties 返回值。

根据调试设置(真或假),我选择使用调试文件还是实时文件。所以我有 4 个属性文件,库项目中有 2 个(调试 + 实时),应用项目中有 2 个(调试 + 实时)。

于 2013-12-23T08:31:36.163 回答