Я пишу некоторый код scalafx
, который должен вызывать метод из java:
val txtEditor = new TextArea {
text = "markdown here"
}
txtEditor.text.addListener(new ChangeListener[String] {
override def stateChanged(e: ChangeEvent): Unit = ???
})
Но он сообщает об ошибке addListener
параметра addListener
:
Тип несоответствия, ожидается: ChangeListener [_>: String], actual: ChangeListener с объектом {def stateChange (e: ChangeEvent) Unit}
И addListener
который является java-методом:
void addListener(ChangeListener<? super T> listener);
Как это исправить?
FTR, чтобы ответить на вопрос.
scala> val is = (1 to 10).to[collection.mutable.LinkedList].asJava
warning: there were 2 deprecation warning(s); re-run with -deprecation for details
is: java.util.List[Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
scala> is sort (new java.util.Comparator[Int] { def compare(a: Int, b: Int) = b - a })
scala> is
res13: java.util.List[Int] = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
ChangeListener
согласно docs.oracle.com/javafx/2/api/javafx/beans/value/… отличается от того, что вы использовали. Можете ли вы упомянуть ссылку API для вашегоChangeLsitener
?