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?
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.
Wenn Sie dies häufig in Ihrem Code tun, können Sie Ihre eigene implizite Konvertierung für alle Map[T, Boolean]
definieren.
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
:
Oder Sie können den Boolean(boolean value)
-Konstruktor von Java verwenden:
Oder Sie können einfach die erste Map deklarieren, die den Java-Referenztyp verwendet:
%Vor%