泛型初步和泛型如何实现,语法详解

/*
关于JDk 5.0新特性,泛型(编译阶段概念)

1.为什么引入泛型
可以统一集合中的数据类型,可以减少强制类型转换
2.泛型语法如何实现
3.泛型的优点和缺点
优点,统一类型,减少强制转换
缺点:类型太统一

以下程序没有使用泛型,缺点?
如果集合不使用泛型,则集合中的元素类型不统一,在遍历集合的时候
只能拿出Object类型,需要做大量的强制类型转换,麻烦

*/
import java.util.*;
public class fuck17{

public static void main(String[] args){

Set s=new HashSet();

A a=new A();
B b=new B();
C c=new C();

s.add(a);
s.add(b);
s.add(c);

//需求,遍历集合,如果是A类型调用m1,B类型调用m2方法,C类型调用m3方法
Iterator it=s.iterator();
while(it.hasNext()){
Object o=it.next();

//只能做大量的类型转换
if(o instanceof A){
A a1=(A) o;
a1.m1();
}else if(o instanceof B){
B b1=(B) o;
b1.m2();
}else if(o instanceof C){
C c1=(C) o;
c1.m3();
}
}

}

}


//A类型
class A{

public void m1(){
System.out.println("A's method invoke");
}
}


class B{

public void m2(){
System.out.println("B's method invoke");
}
}


class C{

public void m3(){
System.out.println("C's method invoke");
}

}


/*
泛型语法如何实现
泛型是一个编译阶段的语法,在编译阶段统一集合中的类型
*/
import java.util.*;
public class fuck18{

public static void main(String[] args){
//创建一个list集合,只能用来存储字符串类型
List<String> str=new ArrayList<String>();

//添加元素
//str.add(1);error,必须是字符串类型
str.add("jack");
str.add("peace");
str.add("love");
str.add("kim");

//遍历
Iterator it=str.iterator();
while(it.hasNext()){
String s=it.next();
System.out.println(s);
}
}
}

猜你喜欢

转载自blog.csdn.net/rolic_/article/details/80317295