当前位置: 代码迷 >> Java相关 >> 新手请问
  详细解决方案

新手请问

热度:5197   发布时间:2013-02-25 21:46:06.0
新手请教
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){
  相关解决方案