java - 从属性文件中获取常量?

标签 java properties constants

是否可以从 java 属性文件中获取常量形式?我正在尝试开发我的应用程序,以便我可以在主属性文件中设置一个标志,指示应用程序是使用开发配置文件还是生产配置文件。

大多数应用程序工作正常,但我在实体类中的数据库表映射方面遇到了一些障碍。我正在使用 Dynamo DB,因此实际类本身需要如下注释:

@DynamoDBTable(tableName = "table_name")
public class EmailTemplates {
...

tableName 值必须是常量,我正在尝试使用以下内容从属性文件中检索值并将其传递给 tableName;

@DynamoDBTable(tableName = DynamoTable.TABLE_NAME)
public class EmailTemplates {
...

DynamoTable 类:

public final class DynamoTable {

    public static final String TABLE_NAME = ResourceBundle.getBundle(ResourceBundle.getBundle("ProjectStage").getString("ProjectStage")).getString("EmailTemplates");

}

不幸的是它不起作用,因为它说值不是常数。如果我只是简单地放置一个文字字符串(即“aStringValue”),那么它很好,但不是来自属性文件。

注意。需要明确的是,上面的代码从属性文件中检索值没有问题。问题是它没有被视为常量。

最佳答案

你不能做你想做的事。

您要求 javac 编译器执行任意代码以从磁盘读取属性文件,提取一个值,并将其作为常量插入到您的代码中(在编译时).

如您所见,编译器要做的事情有点多。

您只能在运行时 执行该代码,这不适合您的情况,因为您正试图为注释分配一个值(因此注释的值必须在编译时间)。

关于java - 从属性文件中获取常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10745928/

相关文章:

php - 为什么 PHP 允许从类外部创建类属性?

spring - mule 3.3 自动重新加载属性

c++ - 将指针容器作为参数传递给 const

c++ - 如何防止初始化列表中的值错误?

java - eclipse -> 错误 : Could not find or load main class hello

java - 如何使两个文档根据彼此的输入实时更新?

java - 带有 XPath 的 JDOM2 不适用于 namespace

java - 递归查找arraylist中的所有组合

ios - 未调用重大更改位置委托(delegate)方法

python - 有什么方法可以像Python中的C++宏函数那样替换数字吗?