ΦXo*_*a ツ 1 java methods implementation
在java 7上午使用PropertyChangeEvent类突然我发现了这个:
/**
* Returns a string representation of the object.
*
* @return a string representation of the object
*
* @since 1.7
*/
public String toString() {
StringBuilder sb = new StringBuilder(getClass().getName());
sb.append("[propertyName=").append(getPropertyName());
appendTo(sb); // <----HERE
sb.append("; oldValue=").append(getOldValue());
sb.append("; newValue=").append(getNewValue());
sb.append("; propagationId=").append(getPropagationId());
sb.append("; source=").append(getSource());
return sb.append("]").toString();
}
void appendTo(StringBuilder sb) {
}
Run Code Online (Sandbox Code Playgroud)
是什么让我发疯,为什么要打电话给这个方法appendTo()?
特别是那种方法什么都不做?
这有什么意义,我在第一眼看不到?
如果子类重写该appendTo方法,则非常有意义.
这就是特定子类的东西可以注入到这个函数中的方式.(虽然对这种效果的评论会很好).
替代方法 - 需要完全覆盖toString- 可能导致相当多的代码重复.