Questo sembra per compilare bene con Java 7, e qualsiasi versione delle librerie Scala:Perché viene compilato in Java 7 ma non in Java 8?
public static void main(String[] args) {
scala.collection.immutable.Set<String> set = new scala.collection.immutable.HashSet<String>();
Iterator<String> iterator = set.iterator();
}
compila anche bene con Java 8 e Scala 2.11.5+. Ma con Java 8 e Scala 2.11.4, Eclipse si lamenta:
The method iterator() is ambiguous for the type Set<String>
Non capisco. Si potrebbe ottenere l'ambiguità su quale metodo sovraccarico selezionare in alcuni contesti, ma sicuramente non se non si passano argomenti?
La cosa veramente strana è che se io rifusione in questo modo:
public static void main(String[] args) {
Iterator<String> iterator = new scala.collection.immutable.HashSet<String>().iterator();
}
poi la denuncia va via. Questo mi sembra esattamente equivalente alla versione precedente. Allora perché dovrebbe compilare bene?
cosa è cambiato nel API di 'scala.collection.immutable.Set' su Scala 2.11 .4 e 2.11.5? se è opensource –
@WvdL non è cambiato nulla. – mkrakhin