泛型:
泛型是JDK 1.5的一项新特性,它的本质是参数化类型(Parameterized Type)的应用,也就是说所操作的数据类型被指定为一个参数,在用到的时候在指定具体的类型。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口和泛型方法。
泛型在接口中的使用:
1 package object.genericity;
2
3 import java.util.ArrayList;
4
5 public class Interface11 {
6 public static void main(String[] args) {
7 ArrayList<String> list=new ArrayList<String>(); //限定数组列表中的类型
8 // list.add(1); //因为限定了类型,所以不能添加整形
9 // list.add(true);//因为限定了类型,所以不能添加布尔形
10 list.add("asa");//只能添加字符串
11 }
12 }
1 package object.genericity;
2
3 import java.util.ArrayList;
4 import java.util.HashSet;
5 import java.util.Map;
6 import java.util.Set;
7
8 public class Interface11 {
9 public static void main(String[] args) {
10 Set<Student> set1=new HashSet<Student>();
11 Set<String> set2=new HashSet<String>();
12
13 ArrayList<Set<Student>> list=new ArrayList<Set<Student>>(); //限定数组列表中的类型
14
15 list.add(set1);
16 // list.add(set2);//Set中的类型是String类型,并非Student类型,会报错
17
18
19
20 }
21 }
泛型在类名中的使用:
1 package object.genericity;
2
3 public class Class1<T> {
4 public T getClass2() {
5 return class2;
6 }
7
8 public void setClass2(T class2) {
9 this.class2 = class2;
10 }
11
12 private T class2;
13
14 public static void main(String[] args) {
15 Class1<Double> class1=new Class1<Double>();
16 // class1.class2="ZTT"; //不符合Double类型
17 class1.class2=5.0;
18 System.out.println(class1.class2.getClass().getName());//java.lang.Double
19 }
20 }