import typeUse.*; import java.util.*; import java.util.function.*; class JC { void testList() { List<@Nullable String> nullableList = new ArrayList<>(); print(nullableList); List<@NotNull String> list2 = nullableList; List<@NotNull String> list3; list2 = nullableList; List list4 = nullableList; List list5 = nullableList; } private static void print(List<@NotNull String> list) { for (String s : list) { System.out.println(s.length()); } } List<@Nullable String> getNullableList() {return new ArrayList<>();} List<@NotNull String> testReturnValue() { List<@Nullable String> list = new ArrayList<>(); Supplier> supplier = () -> list; Supplier> supplierRef = this::getNullableList; Supplier> supplier3 = () -> { return list;}; return list; } } class Test { public void test() { List nullableList = new ArrayList<>(); List list2 = nullableList; } }