को लागू करने जावा इंटरफेस में स्काला में परिणाम असंगत प्रकार के मानचित्र

0

सवाल

मैं एक जावा इंटरफेस है कि मैं करने के लिए चाहते हैं को लागू करने में स्काला. इंटरफ़ेस शामिल हैं निम्न विधि-घोषणा:

 List<Map<String, Object>> xyz(Map<String, Object> var1, Map<String, Object> var2);

मेरे स्काला कार्यान्वयन है:

override def testComponent( input: java.util.Map[String, Object], metadata: java.util.Map[String, Object] )
  {

    val list: util.List[Map[String, AnyRef]] = new util.ArrayList[Map[String, AnyRef]]

     return list
  }

त्रुटि : विधि अधिभावी xyz में विशेषता ITester के प्रकार (x$1: जावा.util.नक्शा[स्ट्रिंग,वस्तु], एक्स$2: जावा.util.नक्शा[स्ट्रिंग,वस्तु])जावा.util.सूची[जावा.util.नक्शा[स्ट्रिंग,वस्तु]]; विधि testComponent है असंगत प्रकार ओवरराइड डेफ testComponent( इनपुट: जावा.util.नक्शा[स्ट्रिंग, वस्तु], मेटाडाटा: जावा.util.नक्शा[स्ट्रिंग, वस्तु] )

मैं नहीं जानता कि क्या वास्तव में समस्या है.

interface java scala scala-java-interop
2021-11-20 13:48:55
1

सबसे अच्छा जवाब

3

की अपनी परिभाषा testComponent है प्रकार Unit क्योंकि इसे परिभाषित किया गया है का उपयोग कर (पदावनत में हाल के संस्करण स्काला) प्रक्रिया का सिंटैक्स def name(args) { } (यानी कोई = {). यह पहली बार गुजरता संकलन क्योंकि स्काला की अनुमति देता है एक मूल्य किया जा करने के लिए खारिज कर दिया जब Unit उम्मीद है (व्यवहार है कि बनाया जा सकता है, एक चेतावनी के साथ कंपाइलर विकल्प -Ywarn-value-discard). आप को हल कर सकते हैं द्वारा किया जा रहा यह स्पष्ट है कि आप चाहते हैं करने के लिए इस विधि बुलाया जा सकता है के लिए मूल्य सहित =.

override def testComponent(input: java.util.Map[String, Object], metadata: java.util.Map[String, Object]) = {
  val list: util.List[Map[String, AnyRef]] = new util.ArrayList[Map[String, AnyRef]]
  list  // return should be avoided in Scala: it's not necessary and can introduce some really subtle bugs
}

यह आम तौर पर एक अच्छा विचार है करने के लिए हो सकता है के बारे में स्पष्ट परिणाम के प्रकार की एक सार्वजनिक विधि है । वैकल्पिक रूप से, यह भी काम करना चाहिए:

override def testComponent(input: java.util.Map[String, Object], metadata: java.util.Map[String, Object]) =
  new ArrayList[Map[String, AnyRef]]
2021-11-22 00:21:31

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में