使用泛型创建的类和方法可以支持不同类型的数据
泛型类
泛型类声明规则如下
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");
}
}