Konvertierung von Scala Map mit Boolean in Java Map mit java.lang.Boolean

8

Ich möchte eine Scala-Map mit einem booleschen Wert in eine Java-Map mit einem java.lang.Boolean-Wert konvertieren (für Interoperabilität).

%Vor%

schlägt fehl mit:

%Vor%

Die impliziten Konvertierungen von JavaConversions arbeiten glücklich mit Containern, die auf denselben Typen parametrisiert sind, wissen aber nicht über die Konvertierung zwischen Boolean & amp; java.lang.Boolean.

Kann ich die JavaConversions-Magie verwenden, um diese Konvertierung durchzuführen, oder gibt es eine kurze Syntax für die Konvertierung, ohne die impliziten Konvertierungen in diesem Paket zu verwenden?

    
flend 09.03.2012, 17:34
quelle

2 Antworten

8

Während JavaConversions die Scala-Map in eine java.util.Map konvertiert und Scala implizit scala.Boolean in java.lang.Boolean konvertiert, führt Scala keine zwei impliziten Konvertierungen durch, um den gewünschten Typ zu erhalten.

Boolean bietet eine box -Methode für explicit Umwandlung.

%Vor%

Wenn Sie dies häufig in Ihrem Code tun, können Sie Ihre eigene implizite Konvertierung für alle Map[T, Boolean] definieren.

%Vor%     
leedm777 09.03.2012, 18:23
quelle
8

scala.collection.JavaConversions wird dir mit dem Problem scala.Boolean bis java.lang.Boolean nicht helfen. Folgendes funktioniert jedoch mit der Methode boolean2Boolean von scala.Predef :

%Vor%

Oder Sie können den Boolean(boolean value) -Konstruktor von Java verwenden:

%Vor%

Oder Sie können einfach die erste Map deklarieren, die den Java-Referenztyp verwendet:

%Vor%     
Travis Brown 09.03.2012 17:55
quelle

Tags und Links