Verwendung von Scala-Aliasen aus Java-Code

8

Angenommen, ich habe in scala einen Typalias definiert als

%Vor%

Es sieht so aus, als könnte ich in Java-Code nicht auf Alias ​​verweisen (es klagt einfach kann kein Symbol finden ):

%Vor%

Ich habe auch den statischen Import ausprobiert.

(Genauer gesagt, ich habe einen Java-Reflektionscode, den ich nicht ändern kann, der den Parametertyp kennen muss, und ich muss ihm einen Bar-Alias ​​geben).

Ich weiß, ich kann Wrapper in Scala erstellen

%Vor%

aber vielleicht vermisse ich einen anderen Weg?

    
om-nom-nom 02.12.2012, 21:05
quelle

1 Antwort

13

Type-Aliase sind nur für den Scala-Compiler sichtbar und erscheinen wie generische Typen nirgendwo in den JVM-Klassendateien.

Wenn Sie in Java sind, verwenden Sie den unalasierten Typ Option[String] , da javac keine Kenntnis über den Typalias Bar hat, den Sie in Ihrem Scala-Code deklariert haben. Wo auch immer du Bar benutzt hättest, benutze Option[String] (das ist scala.Option<String> in Java) und es sollte gut funktionieren.

    
DaoWen 02.12.2012, 21:58
quelle