4.泛型类:什么是泛型类???
学习:第7遍
1.什么是泛型类???
泛型类:表示类中有一个未知的类型
定义方式:
public class 类名 < T >{}
T表示的是一种类型,是泛型的类型参数,可以使用任意标识,一般使用T、E、K、V等
可以在类内部使用T,表示一个对象的类型
在使用类时需要在类名后通过 <类型> 指定具体的类型
在JDK7中支持泛型的类型推断: 类名<类型> 对象名=new 类名<>();
//泛型类
public class GenericTypeClass {
public static void main(String[] args) {
// 可以为Student类指定任意一种属性
//一旦指定后则不能再修改属性的种类,但可以修改值
Student student = new Student();
// student.name = "tom";
// student.age=20;
// student.height=180.5;
// 可以任意赋值,缺乏类型安全
student.field = 20;
student.field="tom";
// 在使用类时需要在类名通过<类型>指定具体的类型
// 泛型必须使用包装类型,不可以用基本数据类型
//即应该Stu<Integer> stu而不是Stu<int> stu
Stu<String> stu=new Stu<>();
//stu.field=20;
//stu.field="tom"; // 类型安全
//field为String类
//stu.field=180.5;
stu.field="tom";
System.out.println(stu.field.getClass());
}
}
//普通类
class Student {
// 在没有出现泛型之前是通过Object来实现
//但Object缺乏类型安全,Java引入泛型的好处:安全、简单
public Object field;
}
// 泛型类
//T表示一种类型,但暂时不知道具体的类型,称为参数化类型,
//在使用该类时要使用具体的类型
class Stu<T>{
T field;
}