Java 单例w/HashMap
我是一名大学Java初学者,我对下面的练习有一个小问题,请问,有人能帮我吗 我需要使用Singleton创建一个应用程序,并在内存中实例化一个HashMap,该内存中的信息位于file.xml,如下所示:Java 单例w/HashMap,java,hashmap,singleton,Java,Hashmap,Singleton,我是一名大学Java初学者,我对下面的练习有一个小问题,请问,有人能帮我吗 我需要使用Singleton创建一个应用程序,并在内存中实例化一个HashMap,该内存中的信息位于file.xml,如下所示: <propriedades> <configuracao> <chave>timeoutApplication</chave> <valor>10</valor> </configuracao> </p
<propriedades>
<configuracao>
<chave>timeoutApplication</chave>
<valor>10</valor>
</configuracao>
</propriedade>
我不知道在这种情况下如何实现HashMap 我不确定XML和hashmap之间的链接,因此我在这里假设您需要解析XML并填充hashmap值。在本例中,您可以使用JAXB从xml中读取并将其保存到hashmap 如果不涉及解析,那么您可以简单地声明并使用HashMap,如下所示
private FileWriter arquivo;
private HashMap map;
private static ArquivoLog log;
一项建议:
在singleton中实现双重检查锁定机制
if(log==null) {
synchronized (ArquivoLog.class) {
if(log==null) {
log = new ArquivoLog();
}
}
}
创建实例并使用public方法公开hashmap时,填充hashmap值。如果hashmap值发生更改(如果根据您的业务逻辑允许),还可以根据您的逻辑更新xml文件。您可以添加一个新的私有字段,如
private Map memory=new hashmap()
就在arquivo
和log
@TobiasOtto字段之间,我不建议使用原始集合。为此,地图可能是一个不错的选择。谢谢大家的分享。我试图使用HashMap
,但还没有成功。我可以将此HashMap与FileWriter一起使用以生成xml文件吗?您希望创建一个文件作为此单例的一部分,还是读取该xml文件并将其保存在HashMap中,以便应用程序中的任何组件访问?@YogendraJ,我需要读取位于“C:\file.xml”的xml文件并保存在HashMap中。对不起,我不清楚。谢谢!我将尝试这个方法并了解JAXB。为了保持简单,您还可以使用DOM解析器。下面是示例代码:再次感谢。我不知道多姆的事。我会检查这个并尝试实现。
if(log==null) {
synchronized (ArquivoLog.class) {
if(log==null) {
log = new ArquivoLog();
}
}
}