باستخدام Scala للاتصال java.util.hashtable#put
-
01-10-2019 - |
سؤال
لدي مشكلة غير متوقعة في الاتصال بوضع علامة تجزئة في المدرسة القديمة. ماذا يحدث هنا؟
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")
^
ملاحظة ، لا يزال السؤال قائمًا كما هو ، لكن لدي حل بديل سيء:
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}
المحلول
الذي - التي properties
يبدو أن الواجهة واحدة من واجهات برمجة تطبيقات المدارس القديمة التي قبل تاريخ جافا الأداء. تلك السطحية في java.util.HashTable[_, _]
هي اختصاصات لأنواع الوجودية ، أولها (نوع المفتاح) يتوافق مع ?0
تظهر في التشخيص. هذه الأنواع القديمة من Java "RAW" هي التماس المؤسفة والمرئية في قابلية التشغيل البيني Java في Scala ، وإن كان ذلك يظهر عادة في واجهات برمجة التطبيقات القديمة جدًا.
لا تنتمي إلى StackOverflow