求各位大虾帮忙看一下 这个方法!!!
public class TestDBDao extends SQLAction{
  public static WeakHashMap<String,WeakReference<TestDBDao>> cache=new    WeakHashMap<String,WeakReference<TestDBDao>>();
  public static TestDBDao getInstance(DataSource ds){
    WeakReference<TestDBDao> ref=cache.get(ds.toString);
    if(ref==null||ref.get()==null){
       return new WeakReference<TestDBDao>(new TestDBDao(ds));
       cache.put(ds.toString(),ref.get());
       }
    return ref.get();
}
}
这个方法为什么要用datasource类型的参数啊?还有这个关键字跟值存在什么样的关系啊?他们是怎么样映射的啊?
补充:这个类继承了sqlaction类,这类里面有一个public SQLAction(DataSource ds){this.datasource=ds;}