2016-07-28 19 views
2

Ich habe über eine Erklärung in scalatest Dokumentation kommen:Warum in Scala geschriebene Anmerkungen zur Laufzeit nicht zugänglich sind?

It must be defined in Java instead of Scala so it will be accessible at runtime. 

Diese recht seltsam ist, wie ich habe den Eindruck, dass Scala Anmerkung stärker als sein Java Pendant ist. Warum fehlt diese Funktion? Gibt es einen Plan, es wieder hinzuzufügen?

+1

Ich denke nicht, dass Scala für Anmerkungen http://stackoverflow.com/questions/8609218/why-scala-people-dont-like-annotation –

Antwort

3

Es ist nicht bekannt, dass Scala-Support-Annotationen zur Laufzeit beibehalten werden (das Problem ist seit einiger Zeit bekannt, aber wie this page besagt, wird es nicht behoben).

Lukas Rytz, eine Scala Committer, erklärt auf a post auf der scala-language Mailingliste:

Es ist definitiv nicht trivial. Java Annotationen haben spezifische Darstellung in Bytecode [...], , die Änderungen an Scala's Bytecode Generator erfordern würde. Die Sprache der Java-Annotationen ist ziemlich speziell, anders als der Rest der Java-Sprache [...], also müsste man definieren, wie dies in einer Scala-Klasse repräsentiert werden kann.

+0

ist Wow, ich weiß nicht seine wissen, dass komplexe, Aber ich gehe davon aus, dass alle Scala-Spezialisten Java und Reflektion kennen, also wird das kein großes Problem sein. – tribbloid