Konvertierung von Datentypen Scala -> Java

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Konvertierung von Datentypen Scala → Java
Hallo,

vielleicht steh ich grad nur total aufm Schlauch aber wie kann man elegant die Int Werte von Scala in Java Integer umwandeln?
Hab folgendes aber iwie find ich das nicht so schön :smiley:

    for(Object item : _currentBoard.getHouses(this)) {
      Integer val = (Integer) item;
      System.out.println(val);
    }

Wuuut? Ich bin mir fast sicher dass scala Integer und java Integer implicit conversions jeweils haben, da gibt’s also nix zu konvertieren… wenn du einen Fehler hast muss das fast an was anderem liegen…


Wenn ich Integer item mache dann kommt folgende Fehlermeldung

[error] /Users/pete/FAU/ki/Kalah-Framework/src/main/scala/info/kwarc/teaching/AI/Kalah/Agents/ChrisLeoPeterAgent.java:38:1: java.lang.Object cannot be converted to java.lang.Integer
[error] for(Integer item : _currentBoard.getHouses(this)) {
[error] (compile:compileIncremental) javac returned non-zero exit code
[error] Total time: 1 s, completed Dec 6, 2017 2:06:39 PM


Ohne Kenntnis der Aufgabenstellung: Sicher, dass in der for-Schleife das ‘item’ wirklich vom Typ ‘Object’ sein muss? Denn eigentlich ist das der Fehler den der Compiler anmault, dass eben java.lang.Object nicht in einen Integer umgewandelt werden kann (was allgemein erstmal so stimmt).

Edit: aehja, glaube ich hab das vorher falsch verstanden, sorry. ignoriert mich :wink:


Für Integer funktioniert die conversation auch wie gewünscht. Hier handelt es sich aber um ein Iterable und da geht die conversion von scala Integer zu java Integer kaputt, da es ein generischer Typ ist.

Ich habe das Problem so in etwa gelöst:

for (int i = 0; i < board.houses(); i++) {
  int houseValue = board.getSeed(playerOne, i);
}
1 „Gefällt mir“

Danke :slight_smile: habs jetz auch mit getSeed() gemacht


Bisschen knapp, aber habs erst jetzt gesehen, es gibt ein paar Methoden, um euch das hässliche Scala <-> Java zu erleichtern:

https://fsi.cs.fau.de/forum/thread/14300-Scala-Java

In GitHub zu finden in: https://github.com/KWARC/Kalah-Framework/blob/master/src/main/scala/info/kwarc/teaching/AI/Kalah/util/Converter.java