【发布时间】:2017-03-01 08:46:41
【问题描述】:
在 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) {
}
是什么让我抓狂,为什么要调用appendTo()这个方法?
尤其是那个方法什么都不做?
这对我一见钟情有什么意义吗?
【问题讨论】:
-
@GhostCat 的包解释是一个 KO 事实,没有子类将能够覆盖 appendTo 方法.....
-
我猜你理论上可以进来,定义你自己的“java.beans”包并在那里做一些肮脏的事情。但很明显:我们讨论这个问题的时间越长,就会想出如何以一种有意义的方式“利用”这个“特性”;它变得越清晰,它不是一个功能......
-
@GhostCat 我想如果你尝试这样做你会得到一个异常... java.lang.SecurityException: Prohibited package name: java.beans
-
我相信可以解决这个问题;它只是没有任何意义;-)
标签: java methods implementation