标签:jboss jboss msc equals hashcode comparable
JBoss MSC 是WildFly 8 和 JBoss 7的底层容器。它管理 JBoss 中的所有 Service,JBoss 中的每一个Service都有一个名字,JBoss MSC通过 ServiceName 对象来抽象Service的名字,ServiceName 代吗链接:ServiceName.java,类图如下:
WildFly 中的一切都是一个Service,每个 Service 都有一个名字,Service 之间有树形关系,所以 ServiceName 也是树状结构,如下代码端:
ServiceName root = ServiceName.JBOSS;
ServiceName l1a = root.append("level-1-a");
ServiceName l1b = root.append("level-1-b");
ServiceName l2a = l1a.append("level-2-a");
ServiceName l2b = l1a.append("level-2-b");
System.out.println(l2a);
System.out.println(l2a.getParent());
System.out.println(l2a.getParent().getParent());service jboss.level-1-a.level-2-a service jboss.level-1-a service jboss
ServiceName tree = ServiceName.of("one", "two", "three");
System.out.println(tree);service one.two.three
任何一个对象都会有一个hashcode,Wikipedia 的解释如下链接:
http://en.wikipedia.org/wiki/Java_hashCode%28%29
通常:
ServiceName a = ServiceName.JBOSS.append("one", "two", "three");
ServiceName b = ServiceName.JBOSS.append("one", "two", "three");
System.out.println(a.equals(b));如下代码段:
ServiceName a = ServiceName.JBOSS.append("one", "two", "three");
ServiceName b = ServiceName.JBOSS.append("one", "two", "three");
Set<ServiceName> set = new HashSet<ServiceName>();
set.add(a);
set.add(b);
System.out.println(set.size());注意:只有当 equals() 方法返回 true且 hashCode方法返回,HashSet认为他们属于同一对象。
Comparable接口使对象可以比较大小,通常用于排序,ServiceName 实现了 Comparable接口的 compareTo() 方法。通常compareTo() 方法返回 大于 0 的整数,0 或小于 0 的整数:
ServiceName a = ServiceName.JBOSS.append("one");
ServiceName b = ServiceName.JBOSS.append("one", "two");
List<ServiceName> list = new ArrayList<ServiceName>();
list.add(b);
list.add(a);
System.out.println(list);
Collections.sort(list);
System.out.println(list);[service jboss.one.two, service jboss.one] [service jboss.one, service jboss.one.two]
JBoss 系列九十七:JBoss MSC - 浅析 ServiceName,布布扣,bubuko.com
JBoss 系列九十七:JBoss MSC - 浅析 ServiceName
标签:jboss jboss msc equals hashcode comparable
原文地址:http://blog.csdn.net/kylinsoong/article/details/24725173