我正在创建一个扩展类PropertyChangeSupport
。我目前想要做的是覆盖firePropertyChange()
:
firePropertyChange,因为它在 PropertyChangeSupport 中实现:
public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
if (oldValue == null || newValue == null || !oldValue.equals(newValue)) {
firePropertyChange(new PropertyChangeEvent(this.source, propertyName, oldValue, newValue));
}
}
我打算覆盖firePropertyChange
:
public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
if (oldValue == null || newValue == null || !oldValue.equals(newValue)) {
firePropertyChange(new JoystickPropertyChangeEvent(this.source, propertyName, oldValue, newValue)); //compile error: source is not visible
}
}
JoystickPropertyChangeEvent
是我创建并扩展的类ProperyChangeEvent
。
问题是我的预期实现无法编译,因为 source 是私有的并且没有getters
in PropertyChangeSupport
,因此子类无法访问它。我无法修改PropertyChangeSupport
的代码。
有没有比将源的私有副本作为我的子类的字段更优雅的方法来解决这个问题?
相关问题: 如何访问其子类中的类的私有变量?