Ist es möglich, Autoboxing in einer PMD-Regel zu erkennen?

9

Der Apache Thrift Code Generator generiert Klassen, die ungefähr so ​​aussehen. Das numCpus -Feld ist Nullable, aber da es als Werttyp gehalten wird, gibt es ein weiteres isSet -Feld, um festzustellen, ob es wirklich gesetzt ist:

%Vor%

Unser Styleguide bevorzugt das Einschließen von Nullwerten als Optional, damit wir eine Nullprüfung nicht vergessen können. Daher ist es üblich, diesen Code zu sehen:

%Vor%

Aber das ist falsch - Dank Autobox kann dieses Argument nie null sein, und der korrekte Aufruf sollte wie folgt aussehen:

%Vor%

Gibt es eine Möglichkeit, eine PMD-Regel zu schreiben, die diesen Aufruf abfängt ( Optional.ofNullable aufgerufen mit einem Werttyp, der automatisch geboxt wird)?

    
kevints 20.05.2015, 22:04
quelle

1 Antwort

1

Ich würde die PMD-Binärdatei herunterladen und den Designer verwenden. Sie können sehen, wie der Ausdruck eine PrimaryExpression und PrimaryPrefix von 'Name: Optional.ofNullable' hat. Anschließend können Sie die PrimarySuffix-Argumente nach dem Methodenaufruf oder suchen Variable. Sie müssen dann die Klassendatei suchen, um die Typen zu finden und anhand dieser bestimmen, ob Sie einen autoboxierten Wert falsch optionalisiert haben.

Ich persönlich würde dies als Java-Regel und nicht als XPath-Regel implementieren.

Weitere Informationen finden Sie Ссылка .

    
SilentICE 22.05.2015 14:48
quelle

Tags und Links