You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
627 B
41 lines
627 B
5 years ago
|
A parameter of the overridden method is missing a @Nullable annotation present in the superclass.
|
||
|
|
||
|
Action: choose a consistent annotation based on the desired invariant.
|
||
|
|
||
|
Example:
|
||
|
|
||
|
```java
|
||
|
class A {
|
||
|
|
||
|
int len(@Nullable String s) {
|
||
|
if (s != null) {
|
||
|
return s.length();
|
||
|
} else {
|
||
|
return 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class B extends A {
|
||
|
|
||
|
int len(String s) { // @Nullable missing.
|
||
|
return s.length();
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
A consistent use of @Nullable on parameters across subtyping should prevent runtime issue like in:
|
||
|
|
||
|
```java
|
||
|
public class Main {
|
||
|
|
||
|
String s;
|
||
|
|
||
|
int foo() {
|
||
|
A a = new B();
|
||
|
return a.len(s);
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|