Singleton w / HashMap

问题描述 投票:0回答:1

我是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。

java hashmap singleton
1个回答
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文件(如果根据您的业务逻辑允许)

© www.soinside.com 2019 - 2024. All rights reserved.