泛型继承类和接口
由于泛型可以是任何类型,我们可以对它做一些限制,让它只能是某些类的子类
public class Test<T extends String>{
public static void main(String[] args) {
Test<String> test = new Test<>();
}
}
泛型通配符
语法:
A<?> a;//泛型通配符,这是在声明对象时使用
A<? extends anyClass> a;//泛型必须是anyClass的子类,且不能做增加和改写操作,只可读取
A<? super anyClass> a;//泛型必须是anyClass的父类
import java.util.List;
import java.util.ArrayList;
public class Test{
public static void main(String[] args) {
List<String> list1 = new ArrayList<>();
list1.add("ss");
System.out.println(list1.get(0));
List<? extends List> list2 = new ArrayList<List>();//确定了上界List
List<? super List> list3 = new ArrayList<Object>();//确认了下界List
List<? extends List> list = new ArrayList<>();
//list.add(1);不可添加
}
}