java - Advertencia de inspección poco clara "NullableProblems" en IntelliJ
intellij-idea code-inspection (3)
¿Por qué estoy recibiendo una advertencia de la inspección de "NullableProblems" en IntelliJ sobre esto?
public class Test implements Comparable<Test> {
@Override
public int compareTo(Test o) {
return 0;
}
}
Estoy usando IntelliJ 14.1.4 y compilando con Java 1.7
Captura de pantalla:
Agregar @NotNull
antes del argumento no ayuda:
Es porque está anulando un método que no tiene una anotación @NotNull
.
IntelliJ IDEA le advierte si el método principal no tiene una anotación @NotNull
.
Esto se puede configurar globalmente en IntelliJ IDEA fácilmente y para mí personalmente es la forma recomendada. Si lo deseas, puedes agregar tus propias anotaciones.
es decir, javax.validation.constraints.NotNull
Camino a la configuración:
Settings > Editor > Inspections > @NotNull/@Nullable problems > Configure annotations
De Comparable.compareTo
A:
@throws NullPointerException if the specified object is null
Entonces IntelliJ sabe que el objeto no debe ser null
y agrega una anotación @NotNull
automáticamente :
IntelliJ IDEA examinará minuciosamente el bytecode de SDK y bibliotecas e inferirá estas anotaciones automáticamente para que luego se puedan usar para analizar el código fuente y detectar lugares donde se pasó por alto null.
Su método reemplazado no incluye esta anotación, por lo que anula este comportamiento, lo que hace que el parámetro sea nulable, contra el contrato de la interfaz Comparable
.
Puede resolver esto agregando @NotNull
antes del parámetro.
También puede desactivar esta inspección presionando Alt + Enter , seleccionando la advertencia en el menú emergente y seleccionando Disable inspection
en el submenú.
Consulte la Ayuda Web y este hilo para obtener más información sobre las anotaciones @NotNull
/ @NonNull
.