泛型的解析

泛型:
Object obj = new Integer(30);
相當於父引用指向子對象就是多態
public class ObjectTool{
private object obj;
public Object getobj()
{
return obj;
}
public void setObj(Object obj)
{
this.obj = obj;
}
}
public class ObjectsToolDemo{
public static void main (String [] agrs){
ObjectTool ot = new ObjectTool();
        //使用1
  ot.setObj(new Integer(2));
    Integer i = (Integer) ot.getObj();
System.out.println(i);

ot.setObj(new String("haha"));
    String s = (String) ot.getObj();
System.out.println(s);
//classcastException
ot.setObj(new Integer(11));
    String q = (String) ot.getObj();
System.out.println(q);
}
}
向上轉型沒有問題,但是向下轉型的時候其實隱含啦類型轉換問題
也就是說這樣的程序並不是安全的,所以在JDK5之後引入啦泛型,提高安全性
public class ObjectTool<T>{
  private T obj;
public T getObj(){
return obj;
}
public void setObj(T obj){
this.obj = obj;
}
}
public class ObjectToolDemo{
public static void main(String [] agrs)
{
ObjectTool<String> ot = new ObjectTool<String>();
ot.setobj(new String("haha");
string h = ot.getObj();
System.out.println(h);
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章