import checkers.nullness.quals.*; class NullnessBound { public void test() { Gen1<@Nullable String> t1 = new Gen1<@Nullable String>(); t1.add(null); Gen2<@Nullable String> t2 = new Gen2<@Nullable String>(); t2.add(null); Gen1<@NonNull String> t3; //:: (generic.argument.invalid) Gen2<@NonNull String> t4; } class Gen1<E extends @Nullable Object> { public void add(E e) { } } class Gen2<@Nullable E> { public void add(E e) { } } }