- Java code
public synchronized static FileProperty getProperty(String filename){ if(!properties.containsKey(filename)){ properties.put(filename, new FileProperty(filename)); } return properties.get(filename); }
------解决方案--------------------------------------------------------
properties 这个变量应该是个HashMap
这段代码主要是为了加快每次查询文件属性(这个需要操作系统去做磁盘操作,也就是 new FileProperty(filename) 这个动作)的速度,所以借助了HashMap做缓存而已。
------解决方案--------------------------------------------------------
- Java code
public synchronized static FileProperty getProperty(String filename){ //FileProperty 是你的用来存放属性文件的一个类吧 //properties应该是一个hashMap,用来存放不同的properties文件对象 //synchronized线程同步操作 //判断当前读取的文件名在当前的hashMap中是否存在,不存在就放入,存在就直接返回这个对象 if(!properties.containsKey(filename)){ properties.put(filename, new FileProperty(filename)); } return properties.get(filename); }
------解决方案--------------------------------------------------------
你3楼贴出来的代码,所使用的getProperty()函数,跟你顶楼给出的getProperty()函数,不是同一个函数。
因为你3楼贴出来的,返回类型是:String
String isAddUserCodeToMsgContentStr = p.getProperty("isAddUserCodeToMsgContent");
而你顶楼贴出来的,返回类型是:FileProperty
public synchronized static FileProperty getProperty(String filename){