1. Object的toString方法返回的格式是 类名+@+散列码的十六进制表示。toString约定我们必须覆盖这个方法。
例如在PhoneNumber的toString方法里可以 写成 区号-电话号码的形式,给客户一个约定的友好的展示。
String.format方法可以进行一些必要格式的显示,比较高效
如:
String.format("%1$,12d", 85022088)
具体实现可以参阅:http://www.iteye.com/topic/339734
2.考虑实现comparable接口
如果你要对一个ServiceEvent的事件进行排序,最好在这个实体里就实现comparable接口
形如:
@Override
public int compareTo(Object o) {
return this.eventTime.compareTo(((ServiceCtrlEvent)o).getEventTime());
}
这样就可以很简单的和很多集合类一起使用,排序可以直接使用集合的排序,
Collections.sort(serviceCtrlEvents);
有一点值得一提:
由于compareTo方法只是指定了返回值的符号,并没有制定返回值,在通常我们些的compareTo方法上会有一定的改进空间:
如实现电话号码的比较时
public int compareTo(PhoneNumber pn){
if(areacode<pn.areaCode){
return -1;
}
if
if(areacode>pn.areaCode){
return 1;
}
if(lineNumber<pn.lineNumber){
return -1;
}
if(lineNumber>pn.lineNumber){
return 1;
}
return 0;
}
可以改进为:
public int compareTo(PhoneNumber pn){
areaCodeDiff =areacode- pn.areaCode;
if(areaCodeDiff !=0){
areaCodeDiff;
}
……
return 0;
]
Java平台的所有值类Integer、BigDecimal 等都实现了这个comparable接口。