我想在{strong> String
setValue()
中使用 vaadin
传递scala
类型参数。< / p>
问题:
它显示为def setValue(x$1: ?0): Unit
。这意味着它期待一些?0
类型的arg。
我不知道如何处理这个问题。
如果有人能够准确地解释这个类型是什么,它接受什么样的值以及如何将String
类型arg传递给该方法,那将是很好的。
注意:setValue(Object newValue)
可与 java
一起使用。
以下是代码段。
def getProcessTreeContainer(): HierarchicalContainer = {
var container = new HierarchicalContainer();
container.addContainerProperty("process", classOf[java.lang.String], null)
val tc = new TableCommon();
var process_menu_data_object_list = tc.getProcessTree();
val size = process_menu_data_object_list.size()
val obj = process_menu_data_object_list.iterator()
while (obj.hasNext()) {
val key = obj.next().id
val parent_key = obj.next().family_id
var name = ""
if (key == parent_key) {
val l = obj.next().name
//println(l.toString()+"...at step 1")
println(("okiiess".asInstanceOf[String]))
var child: Item = container.getItem(container.addItem(key))
child.getItemProperty("process").setValue(l.asInstanceOf)
// arg l.asInstanceOf(), what I am passing in setValue() method, throws NullPointerException.
} else {
container.setParent(key, parent_key)
}
//println("okay...")
}
return container;
}
答案 0 :(得分:1)
?0
不是数据类型,它是Scala编译器告诉你它不知道类型是什么。问题是child.getItemProperty("process")
returns a raw type Property
for some reason,它们在Scala中不受支持,也不应在Java中使用(它应该返回Property<?>
)。将其投射到Property[String]
,因为您知道它的类型实际是什么。