当 scala 的方法接受"?0"作为参数类型时,它期望什么值?



我想在vaadinsetValue()中传递一个String类型参数,scala .

问题 :它显示为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不是

数据类型,它是Scala编译器告诉你它不知道类型是什么。问题是child.getItemProperty("process")出于某种原因返回了一个原始类型Property,这在 Scala 中不受支持,也不应该在 Java 中使用(它应该返回Property<?>)。投射到Property[String],因为你知道它的实际类型是什么。

相关内容

最新更新