Wie definieren Sie eine @ - Schnittstelle in Scala?
Wie erzeugt man eine @interface
in Scala? Ich habe ehrlich gesagt das Gefühl, dumm zu Fragen, dass die Frage, aber ich kann nicht finden, die syntax für diese überall. Ich weiß, dass Sie konsumieren, sondern wie Sie tatsächlich definieren neue in Scala?
Java:
public @interface MyAnnotation { }
Scala:
???
- Ich Frage mich, ob es das wirklich Wert? Annotation-Klassen sind in der Regel eher klein, so gibt es keinen wirklichen Vorteil im schreiben von Ihnen in Scala. Wie enums schreiben Sie in Java ein mit ausgeführt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Antwort basiert auf Scala 2.8.
Für die vollständigen Angaben, siehe Abschnitt 11 "benutzerdefinierte Anmerkungen" in der Scala Referenz
Siehe zum Beispiel: @tailrec.
UPDATE der compiler Die Warnung sagt es am besten:
Diskussion
StaticAnnotation
s mir erlauben, Sie zu verwenden, und kompilieren Sie Sie, wie kann ich die Abfrage für Sie zur Laufzeit? Eine Java-annotation markiert mit@Retention(RetentionPolicy.RUNTIME)
können gefunden werden in Scala, aber ich kann nicht findenStaticAnnotation
s definiert in Scala, obwohl ich markierte Sie mit einem runtime-Aufbewahrungsrichtlinie.Wenn Sie möchten, erstellen Sie eine Beschriftung in Scala, sollten Sie mix
StaticAnnotation
oderClassAnnotation
Merkmale. Beispiel-code: