一、为什么要有泛型?
目的 :是为了提高程序的健壮性和易用性
二、泛型的定义
类型实参,定义类的时候 用一个占位符表示不知道使用的时候传入什么类型(形参),用的时候传入实际的类型(实参)
三、泛型的使用
public class Point<T> {// 可以用任意一个字母 表示一个占位符 一般推荐用T Type
private T x;// 经度
private T y;// 维度
public T getX() {
return x;
}
public void setX(T x) {
this.x = x;
}
public T getY() {
return y;
}
public void setY(T y) {
this.y = y;
}
}
四、泛型的两点说明
1.加了泛型以后,使用泛型类的时候, 如果不为泛型指定类型,会出现警告
2.JDK7.0开始 后面的泛型可以不加 可以只加前面的 ...
五、通配符 ?
六、泛型擦除
把一个带泛型的引用赋值给不带泛型的引用叫做泛型擦除
七、泛型的上限和下限
1.泛型的上限
? extends 父类
例如:
? extends Number
可以传Number 或Number的子类 (Integer、Double、Byte)
2.泛型下限
? super 类
例如
? super String
可以传String 或 String 的父类
八、泛型接口
1. 接口的实现类 也带泛型
2. 接口的实现类不带泛型(推荐)
九、泛型方法
eg:
class Message{
//泛型方法
public <T> T test(T t){
return t;
}
}
public class 演示泛型方法 {
public static void main(String[] args) {
Message2 message = new Message2() ;
Integer str = message.test(new Integer(10));
System.out.println(str);
}
}