对码当歌,猿生几何?

Java泛型

使用泛型创建的类和方法可以支持不同类型的数据

泛型类

泛型类声明规则如下

1.类名后跟<T> T可以是任意字母,也可以声明多个泛型,如<T,S,E>

2.在需要使用泛型的地方使用 T 来代替类型

如声明方法,声明集合类型时

 1 class myList<T>{ 2     private  List<T> ls=new ArrayList<T>; 3     public void add(T t){ 4     ls.add(t);  
 5    } 6     public void remove(T  t){ 7     ls.remove(t); 8     } 9 }10 public class Demo1{11   public static void main(String[]  args){12    ls.add("String类");13    ls.remove("String类");14  } 
15 }

泛型约束

声明泛型类的时候使用extends 关键字,可以限制泛型可以使用类型的范围

限制好范围后,实现泛型时类型只能使用类型的派生类(或本身)

 class myList<T extends Number>{ 2     private  List<T> ls=new ArrayList<T>; 3     public void add(T t){ 4     ls.add(t);  
 5    } 6     public void remove(T  t){ 7     ls.remove(t); 8     } 9 }10 public class Demo1{11   public static void main(String[]  args){12    ls.add("String类");13    ls.remove("String类");14  } 
15 }

泛型方法

声明泛型方法时,可以不用将类设为泛型类.

public class Day1907{public static <T> void f1(T t){
System.out.println("没有返回值类型泛型方法");
}public static <T> T f1(T t){
System.out.println("返回值为T的泛型方法");
}public static <T extends t> T f1(T t){
System.out.println("返回值为T的泛型方法,泛型声明只能是T类型及其衍生类");
}public static  String main(String[]  args){
  f1("T");
}
}