日期:2014-05-20  浏览次数:20746 次

新手请教
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){