Scala Iterable zu Java Collection konvertieren

doczoidberg

Mitglied
Hallo,
ich habe folgendes Interface:

Java:
public interface AssemblySeparation {

    public int score();

    public scala.collection.Iterable<MatingOperation> operations();
}

wie kann ich auf operations in Java zugreifen?

wenn ich versuche mit
Java:
scala.collection.Iterable<MatingOperation> myoperations = myAssemblySeparation.operations();

oder
Java:
java.lang.Iterable<MatingOperation> myoperations = myAssemblySeparation.operations();

drauf zuzugreifen, bekomme ich folgenden Fehler:
java.util.ArrayList cannot be cast to scala.collection.Iterable

dabei ist es doch gar keine ArrayList? Auch eie Zuweisung in eine ArrayList ist nicht möglich (gleiche Fehlermeldung)
 
Du benötigst von Java aus eine Möglichkeit über die Elemente des Iterable aus Scala zu iterieren. Das würde z.B. mit der foreach-Schleife von Java aber nicht gehen, da diese ein java.Iterable verlangt aber kein scala.Iterable. Also musst du das Iterable konvertieren (mit den Methoden aus scala.collection.JavaConversions) oder eben weiterhin die Collection-Klassen von Scala benutzen.
 

Zurück
Oben