考虑以下层次:为什么需要多种类型铸造?
TopClass
|__ MiddleClass
|__ BottomClass
然后将下面的代码是 - 当然不是必需的:
public BottomClass getBottom() {
return (BottomClass) (MiddleClass) getObject();
}
凡getObject()
返回BottomClass
类型的实例,但有TopClass
返回类型。
你可以有效地短路它,并直接投射到BottomClass
。
但这个代码提出了我的眉头:
在JavaFX的源码包, 类:com.sun.javafx.scene.control.skin.ProgressIndicatorSkin
@Override
public StyleableProperty<Paint> getStyleableProperty(ProgressIndicator n) {
final ProgressIndicatorSkin skin = (ProgressIndicatorSkin) n.getSkin();
return (StyleableProperty<Paint>)(WritableValue<Paint>)skin.progressColor;
}
凡界面层次是:
WritableValue<T>
|__ StyleableProperty<T>
而且progressColor
是的类型210,实现StyleableProperty<Paint>
,而是存储在ObjectProperty<Paint>
变量,像这样:
private ObjectProperty<Paint> progressColor = new StyleableObjectProperty<Paint>(null)
任何线索这是怎么回事呢?
您是否尝试删除中间演员?它有错误吗?错误说了什么? – ReyCharles
它似乎只是一些不必要的代码,但我对JavaFX不太了解,不知道是否有某种看不见的原因。 –
这不是我的代码,它是JDK的一部分。而且可能不需要JavaFX的知识。 – Mordechai