import edu.umd.cs.findbugs.annotations.*;
public class FindBugs {
@CheckForNull Object getNull() {
return null;
}
@NonNull MyList<@Nullable Object> getListOfNulls() {
return null; // error
}
void test() {
Object o = getNull();
o.toString(); // error
MyList<@Nullable Object> l = getListOfNulls();
l.toString();
l.get().toString(); // error
}
}
class MyList<T extends @Nullable Object> {
T get() { throw new RuntimeException(); }
}