2

我在我的 java 程序中使用属性文件。

目前,每当我需要属性文件中的某些属性时,我都会使用propertyFile.getProperty(propertyKeyName);并将其放入某个变量中:String propertyName1 = propertyFile.getProperty(propertyKeyName);

有没有什么方法可以在没有显式定义变量 ( propertyName1) 并使用它初始化的情况下getProperty(),我可以将属性文件的所有 Key=Value 作为字符串变量获取,该变量已在我的程序中初始化为“String Key=Value”吗?

谢谢,钱德拉

4

1 回答 1

3

不,变量是在编译时声明的——它们的名称(至少是实例/静态变量)和类型被烘焙到类文件中。当名称仅在执行时才知道时,这怎么可能起作用?

如果编写一个表达式,由于属性文件的内容,该表达式在执行时引用了一个“不存在”的变量,您会期望发生什么?

现在你可以做的是编写一个类来通过反射初始化一个类的实例 - 你可以编写你的类:

public class Person
{
    private String firstName;
    private String lastName;
    private String jobTitle;
    // Whatever... accessors etc
}

然后使用反射创建一个实例,Person其中包含从属性文件填充的值。如果缺少某些属性(如果您想要的话),该机制可能会在加载时失败。

于 2012-05-24T07:34:10.660 回答