2017-02-12 4 views
0

Ich bin von Scala nach Java übergegangen und vermisse standardmäßig die letzten Parameter. Ich erforschte eine experimentelle Version der Lombok Bibliothek here (Hintergrundinfo here), die Dateien auf dieser Funktionalität anspielend hatte:Java @ FinalArgs Annotation - wie?

src/core/lombok/experimental/FinalArgs.java“, „src/core/lombok/javac/handlers/HandleFinalArgs.java“, „src/core/lombok/eclipse/handlers/HandleFinalArgs.java

Ich habe nie viel getan Reflexion oder Annotations Schreiben in Java, also auf jeden, der herausfinden kann, wie man eine funktionierende @FinalArgs-Annotation in mein aktuelles Java-Projekt bringt (nicht mit Lombak verbunden - mein Team ist nicht bereit, eine modifizierte/benutzerdefinierte Version von Lombak zu verwenden). Erster Preis an alle, die auch erklären können, was vor sich geht.

Antwort

1

Sie können eine solche Anmerkung nicht erhalten, ohne zu tun, was Lombok tut (Plugins in IDEs installieren und möglicherweise einen vm-Agenten installieren).

Sie können jedoch die meisten IDEs so einstellen, dass Sie eine Warnung oder einen Fehler erhalten, wenn ein Parameter neu zugewiesen wurde.

Es gibt keinen weiteren Vorteil, sie wirklich final zu machen. Das JIT ist schlau genug, um das selbst herauszufinden.

0

Lombok wird diese Funktion nicht hinzufügen. Sie können Ihre IDE oder den statischen Quellenanalysator anweisen, Warnungen zu generieren, aber seit java8 gibt es keinen zusätzlichen Vorteil, Variablen und Parameter endgültig zu machen. Wenn sie effektiv final sind (nie neu zugewiesen), können sie innerhalb von Lambdas und anonymen inneren Klassen verwendet werden, als wären sie endgültig.

Verwandte Themen