尝试使用 Scala 2.8.1/JavaFx 2.0 beta 编译以下代码时
new KeyValue(circle.translateYProperty, random() * height)
我收到以下错误:
[error] found : javafx.beans.property.DoubleProperty
[error] required: javafx.beans.value.WritableValue[Any]
[error] new KeyValue(circle.translateYProperty, random() * height)
[error] ^
[error] one error found
而这一行编译得很好:
new KeyValue(circle.translateXProperty.asInstanceOf[WritableValue[Any]], random() * width)
我检查了KeyValue构造函数,它具有以下签名:
public <T> KeyValue(javafx.beans.value.WritableValue<T> tWritableValue, T t) { /* compiled code */ }
circle.translateXProperty返回实现以下接口的DoubleProperty :
public interface WritableNumberValue extends javafx.beans.value.WritableValue<java.lang.Number>
有什么比强制编译更优雅的解决方案?