奇怪的类型不匹配错误

米特林格

我有一个表列errorFixed类型的TableColumn[Error, Boolean]内部TableView[Error]我的Error班级有一个val fixed: Boolean我尝试放入此表列的项目。

我试过了

errorFixed.cellValueFactory = features => 
  ReadOnlyBooleanWrapper(features.value.fixed)

但是失败了

type mismatch;
found   : scalafx.beans.property.ReadOnlyBooleanWrapper
required: scalafx.beans.value.ObservableValue[Boolean,Boolean]

我真的不理解这ObservableValue[Boolean,Boolean]ReadOnlyBooleanWrapper 根据文档的超类

如果我自己使用.asInstanceOf[ObservableValue[Boolean, Boolean]]它进行投射,则似乎可行。这里发生了什么?

要点与精简项目重现

哈雷克

简短的答案是:

errorFixed.cellValueFactory = features => 
  ReadOnlyBooleanWrapper(features.value.fixed)

你应该使用

errorFixed.cellValueFactory = features => 
  ObjectProperty[Boolean](features.value.fixed)

ReadOnlyObjectWrapper[Boolean]

长答案的简短版本:在使用原始Java类型(例如boolean或int)时,Scala和Java之间存在某些“摩擦”。这种不便体现在ScalaFX中的属性绑定中。并非所有内容都以直观的方式继承。在这种情况下

ReadOnlyBooleanWrapper 

是的子类

ObservableValue[scala.Boolean, java.lang.Boolean]

scala.Boolean不是java.lang.Boolean内部的子类,在ScalaFX中这会导致复杂化。有趣的是.asInstanceOf[ObservableValue[scala.Boolean, scala.Boolean]],尽管类型参数在编译时不匹配,但转换仍然有效。

感谢您提供完整的代码示例(要点),这确实有助于阐明问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

奇怪的类型不匹配错误

来自分类Dev

Scala中奇怪的类型不匹配错误

来自分类Dev

Scala中奇怪的类型不匹配错误

来自分类Dev

奇怪的JVM验证错误:堆栈类型不匹配

来自分类Dev

经典ASP-奇怪的类型不匹配错误

来自分类Dev

HTA和类型不匹配错误的VBScript奇怪问题

来自分类Dev

奇怪无法匹配类型错误

来自分类Dev

错误类型与replaceitemvalue不匹配

来自分类Dev

VBA错误:类型不匹配

来自分类Dev

错误类型与replaceitemvalue不匹配

来自分类Dev

类型不匹配错误#13

来自分类Dev

Scala 错误:类型不匹配

来自分类Dev

绑定不匹配错误:类型无效

来自分类Dev

MS Excel VBA类型不匹配错误

来自分类Dev

使用recover()时,类型不匹配错误

来自分类Dev

使用“ AdvanceFilter”输入类型不匹配错误

来自分类Dev

为什么类型不匹配错误?

来自分类Dev

在vbScript中获取类型不匹配错误

来自分类Dev

F#中的类型不匹配错误

来自分类Dev

Flink:PageRank类型不匹配错误

来自分类Dev

VBA Excel 2016:类型不匹配错误

来自分类Dev

错误:参数值与预期类型不匹配

来自分类Dev

递归CTE错误:类型不匹配

来自分类Dev

循环外的Rust不匹配类型错误

来自分类Dev

Presto因类型不匹配错误而失败

来自分类Dev

F#If语句类型不匹配错误

来自分类Dev

Excel VBA中的类型不匹配错误

来自分类Dev

grails中的remoteFunction()类型不匹配错误