我是Java的大学初学者,我对下面的练习有一点疑问,拜托,有人可以帮我解决这个问题吗?
我需要使用Singleton创建一个应用程序,并在一个内存中实例化一个HashMap,其中包含file.xml的信息,如下所示:
<propriedades>
<configuracao>
<chave>timeoutApplication</chave>
<valor>10</valor>
</configuracao>
</propriedade>
这是我现在的代码:
public class ArquivoLog {
private FileWriter arquivo;
private static ArquivoLog log;
private ArquivoLog(){
try {
this.arquivo = new FileWriter("C:\\arquivo.xml");
}catch (IOException ex) {
Logger.getLogger(ArquivoLog.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static ArquivoLog getInstance(){
if(log==null){
log = new ArquivoLog();
}
return log;
}
}
在这种情况下,我不知道如何实现HashMap。
答案 0 :(得分:0)
我不确定XML和hashmap之间的链接所以我假设您需要解析XML并填充hashmap值。在这种情况下,您可以使用JAXB从xml读取并将其保存到hashmap。
如果没有涉及解析,那么你可以简单地声明和使用HashMap,如下所示
private FileWriter arquivo;
private HashMap map;
private static ArquivoLog log;
一个建议:
在你的单身人士中实施双重检查锁定机制。
if(log==null) {
synchronized (ArquivoLog.class) {
if(log==null) {
log = new ArquivoLog();
}
}
}
在创建实例时填充哈希值,并使用公共方法公开哈希映射。如果更改了hashmap值(如果根据您的业务逻辑允许,则基于您的逻辑更新xml文件)