यह जावा 7 के साथ ठीक संकलित करने के लिए लगता है, और स्काला पुस्तकालयों के किसी भी संस्करण:यह जावा 7 के तहत क्यों संकलित करता है लेकिन जावा 8 के तहत नहीं?
public static void main(String[] args) {
scala.collection.immutable.Set<String> set = new scala.collection.immutable.HashSet<String>();
Iterator<String> iterator = set.iterator();
}
यह भी जावा 8 और स्काला 2.11.5+ के साथ ठीक संकलित करता है। लेकिन जावा 8 और स्कैला 2.11.4 के साथ, ग्रहण शिकायत करता है:
The method iterator() is ambiguous for the type Set<String>
मुझे यह समझ में नहीं आता है। आपको कुछ संदर्भों में चयन करने के लिए अधिभारित विधि पर अस्पष्टता मिल सकती है, लेकिन निश्चित रूप से नहीं कि आप कोई तर्क पारित नहीं कर रहे हैं?
public static void main(String[] args) {
Iterator<String> iterator = new scala.collection.immutable.HashSet<String>().iterator();
}
तो शिकायत दूर चला जाता है:
वास्तव में अजीब बात यह है कि अगर मैं इसे इस तरह फिर से पात्र चयन है। ऐसा लगता है कि मुझे उपरोक्त संस्करण के बराबर बराबर होना चाहिए। तो अब यह ठीक क्यों संकलित होगा?
जांच क्या स्काला 2.11 पर 'scala.collection.immutable.Set' के एपीआई में बदल निर्धारित किया गया है .4 और 2.11.5? यदि यह ओपनसोर्स –
@WvdL कुछ भी नहीं बदला है। – mkrakhin