Ich schrieb ein einfaches Projekt, um zu lernen, wie man mit Annotation Validierung arbeiten. Zu diesem puspose Ich habe Maven Abhängigkeit (auch versuchte ich javax.validation, die nicht für mich funktioniert):JetBrains '@NotNull funktioniert nur, wenn das Projekt von IDEA
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>15.0</version>
</dependency>
und verwendet es so aus:
public boolean add(@NotNull T entry){ ...
Als ich das Projekt erstellen aus IDEA, alles ist in Ordnung, aber es funktioniert nicht beim Kompilieren des Codes mit Maven-Befehl. In der dekompilierten Klassendatei habe ich festgestellt, dass IDEA meine Klassen auf andere Weise kompiliert. Es fügt diese Prüfung hinzu:
if (entry == null) {
$$$reportNull$$$0(0);
}
Und maven nicht.
Ich mache ich etwas falsch? Bitte sagen Sie mir, wie es verwendet werden sollte (egal, ob Jetbrains oder Javax-Validierung).
möglich ist. Mögliche Duplikate von [Warum @Nonnull-Annotation zur Laufzeit überprüft?] (Http://StackOverflow.com/Questions/40847472/Why-Nonnull-annotation-checked- zur Laufzeit) –
Das ist IntelliJ IDEA 2016.3 Feature (nicht sehr schön). –