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 super @NotNull String> list4 = nullableList;
List extends @NotNull String> 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 extends @NotNull CharSequence> list2 = nullableList;
}
}