2011-08-04 6 views
7

में संदिग्ध निहित रूपांतरणों को हल करना निम्नलिखित में जावा के रूप में उपयोग करने का विकल्प चुनने का कोई तरीका? मुझे पता है कि मैं सिर्फ उस विशेष कार्य नाम का जादू कर सकता हूं, लेकिन मुझे आश्चर्य है कि क्या मैं केवल वांछित रूप से निर्दिष्ट प्रकार निर्दिष्ट कर सकता हूं। मैं भी उत्सुक हूं क्योंकि जावावाइटेबल के रूप में जावावॉर्टेबल को प्राथमिकता नहीं ले रही है।स्कैला

scala> import scala.collection.JavaConversions._ 
import scala.collection.JavaConversions._ 

scala> Iterable(0,1):java.lang.Iterable[Int] 
<console>:11: error: type mismatch; 
found : Iterable[Int] 
required: java.lang.Iterable[Int] 
Note that implicit conversions are not applicable because they are ambiguous: 
both method asJavaIterable in object JavaConversions of type [A](i: Iterable[A])java.lang.Iterable[A] 
and method asJavaCollection in object JavaConversions of type [A](i: Iterable[A])java.util.Collection[A] 
are possible conversion functions from Iterable[Int] to java.lang.Iterable[Int] 
     Iterable(0,1):java.lang.Iterable[Int] 
      ^

उत्तर

12

यह इतना है कि asJavaCollection विचार नहीं किया जाएगा आयात के दायरे को सीमित करने के लिए संभव है:

import scala.collection.JavaConversions.{asJavaCollection=>_,_} 

यह कहते हैं, "आयात JavaConversions के सभी सदस्यों, asJavaCollection को छोड़कर"।

हालांकि, मुझे लगता है कि JavaConverters आयात करना बेहतर है और आपके रूपांतरण स्पष्ट कर सकते हैं।

import scala.collection.JavaConverters._ 

Iterable(0,1).asJava