3
我有一個意想不到的麻煩調用放在舊學校哈希表。這裏發生了什麼?使用scala調用java.util.Hashtable#put
Welcome to Scala version 2.8.0.final (Java HotSpot(TM) Client VM, Java 1.6.0_21).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import com.ibm.mq._
import com.ibm.mq._
scala> MQEnvironment.properties
res1: java.util.Hashtable[_, _] = {}
scala> res1.put("transport", "MQSeries")
<console>:10: error: type mismatch;
found : java.lang.String("transport")
required: ?0 where type ?0
res1.put("transport", "MQSeries")
^
PS,問題仍然有效的是,但我有一個討厭的解決辦法:
scala> new java.util.Hashtable[String, String]
res10: java.util.Hashtable[String,String] = {}
scala> res10.put("transport", "MQSeries")
res11: String = null
scala> MQEnvironment.properties = res10
scala> MQEnvironment.properties
res13: java.util.Hashtable[_, _] = {transport=MQSeries}
根據需要將它們轉換爲AnyRef值通常是「OK」。如果所有這些「不好」的通用方法都被記錄下來,並且編譯器可以選擇爲您更正這些方法,那將很方便。 – jsuereth 2010-08-27 01:28:38