我不确定我是否问对了,因为我正在尝试自学 Java。我有一个包含我的主要方法的类,并且在这个类中有几个需要使用 java.util.Properties 访问我的用户设置的子类。我必须在每个子类中创建属性对象才能使其工作,并且我无法使用 configFilePath 引用该对象,它必须为空。我想知道我是否可以在父类中创建这个公共对象,所以我不需要在它的所有子类中创建它?这是我的代码,虽然它有效,但我真的不确定我做对了。
public class Frame1 extends JFrame {
Settings config = new Settings(); //this is the object I want to reference within subclasses
class Update extends SwingWorker<Integer, Void> { //first subclass
@Override
protected Integer doInBackground() throws Exception {
Settings config = new Settings(configFilePath); //yet I have to create the object within every subclass, this time an argument is required.
String templateDir = config.getProperty("templatedir");
String writePath = config.getProperty("outputdir");
//do some logic code, not required for my question
}
@Override
protected void done() {
Update2 update2 = new Update2();
update2.execute(); //start the next subclass which also needs access to Settings(configFilePath)
}
}
}
public class Settings extends JFrame {
String configFilePath = "C:/path/to/settings.properties";
Properties properties = new Properties();
public Settings(String configFilePath) throws IOException {
this.configFilePath = configFilePath;
FileInputStream fis = null;
try {
fis = new FileInputStream(configFilePath);
properties.load(fis);
} catch (FileNotFoundException e) {
setDefaults();
} finally {
if (fis != null) {
fis.close();
}
}
}
}
我不确定我这样做是否正确,它似乎可以工作,但每次我需要访问我的用户设置时都必须创建配置对象似乎是相当多余的。我希望以前没有人问过这个问题,如果有,请给我链接,因为我找不到。