一、泛型
1、定义&基本用法:
用来限制类型。
用在集合中,就会约束该集合中元素的数据类型。
以在集合中的使用为背景举例:
List<String> list = new ArrayList<String>();
list.add("晴天");
//list.add(10); //因为加入的是整型数据,所以会发生编译错误
说明: <>中放"String",则放入该集合中的元素必定为String类型
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
list.add("晴天");
list.add(10);
//但是可以进行强转
String str = (String)list.get(0);
}
}
说明:
如果省略<>,那么默认存放的所有内容都为Object类型,即虽然“晴天”是String类型,10是int类型,但都是以Object类型加入进集合中的。
建议:
使用集合时,给集合添加对应的泛型,让集合中元素的数据类型有明确的定义。等号两边<>中的内容最好保持一致,都写上去。
2、注意点:
添加泛型时,<>中不能使用基本数据类型,需要用到对应的引用数据类型。同时自定义的类也是可以放入的。
3、泛型的高级用法:
T:泛型的意思
使用时的考量:
当设置一个类的时候,不知道类中的属性的类型该定为什么,这个时候就可以使用到泛型了。
public class Test {
public static void main(String[] args) {
Student<String> student1 = new Student<String>();
//此处设置年龄,必须为String类型
student1.setAge("17岁");
Student<Integer> student2 = new Student<Integer>();
student2.setAge(17);
}
}
class Student<T>{
//定义泛型age
private T age;
public T getAge() {
return age;
}
public void setAge(T age) {
this.age = age;
}
}