import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;public class DBRoute implements Serializable { private static final long serialVersionUID = 7257554050781719469L;
private String xid = null;
private DBRoute(String xid) {
this.xid = xid;
} private static Map<String, DBRoute> routes = new HashMap<String, DBRoute>(); public static DBRoute getRoute(String xid) {
return create(xid);
}
public static DBRoute create(String xid) {
if (routes.get(xid) == null) {
// 这里有点晕...routes放进一个新的DBRoute
// 能在本类的函数中放入一个本类的实例化?是不是因为是static函数?
// 而这个map的值又是个BDRoute 说到底这个DBRoute到底储存了什么东西?
routes.put(xid, new DBRoute(xid));
}
return routes.get(xid);
} public String getXid() {
return xid;
} public void setXid(String xid) {
this.xid = xid;
}
}
解决方案 »
- 请问为什么感觉代码木有问题,而且数据库中也有数据,可是却查不出来啊?
- JAVA 怎么在两个控件中间添加一个水平的分割线
- awt里面怎么响应右键点击的事件?
- 需要用java在一个指定的cmd窗口中输入一个字母,例如“y”,再回车,分管够
- 有个程序看不懂
- 培训可靠吗?
- 恳请大家帮帮我
- 看JTable代码时发现的问题,不理解为什么
- 编程列出一个字符串的全字符组合情况,原始字符串中没有重复字符 例如: 原始字符串是"abc",打印得到下列所有组合情况 "a" "b" "c" "ab" "b
- 散些分数,谁知道jdk1.4在哪里有下载
- 求关于一内部类的运行结果,并请说下简单的理由。
- JPA 主子表 如何一起保存?
只是静态方法中不能用this
2.DBRoute是不能被new 的,只能通过DBRoute.getRoute()获得
3.所有新建的DBRoute,都存在routes中。
4.所有static的东西都存在DBRoute的Class对象中,一个虚拟机只有一份。
5.DBRoute的Class对象存routes,routes存全部DBRoute对象的引用,通过xid获取对应的DBRoute
6.if (routes.get(xid) == null)这句是如果routes里没有对应的DBRoute则新建一个不知道你懂了没有~~
这个设计避免了内存的浪费。还觉得应该把public static DBRoute getRoute(String xid) {
return create(xid);
}
这个方法删除掉。对外面只提供create接口方法!!
而routes这个静态的集合,就当做是永久保存内存中的集合
其实放在另外一个类中都可以。