При попытке скомпилировать следующий код с 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>
Что может быть более элегантным решением, чем приведение к компиляции?