集合框架-通過Object轉型問題引入泛型
package cn.itcast_03;
/*
* 早期的時候,我們使用Object來代表任意的型別。
* 向上轉型是沒有任何問題的,但是在向下轉型的時候其實隱含了型別轉換的問題。
* 也就是說這樣的程式其實並不是安全的。所以Java在JDK5後引入了泛型,提高程式的安全性。
*/
public class ObjectToolDemo {
public static void main(String[] args) {
ObjectTool ot = new ObjectTool();
// 正常使用
ot.setObj(new Integer(27));
Integer i = (Integer) ot.getObj();
System.out.println("年齡是:" + i);
ot.setObj(new String("林青霞"));
String s = (String) ot.getObj();
System.out.println("姓名是:" + s);
System.out.println("---------");
ot.setObj(new Integer(30));
// ClassCastException
String ss = (String) ot.getObj();
System.out.println("姓名是:" + ss);
}
}
package cn.itcast_03;
public class ObjectTool {
private Object obj;
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
}
相關文章
- Java泛型型別擦除問題Java泛型型別
- C#泛型集合C#泛型
- Java:Collection集合、泛型Java泛型
- 07.集合和泛型泛型
- Day22 集合,ArrayList,泛型泛型
- Java 集合列舉泛型(一)Java泛型
- 通過反射認識泛型的本質反射泛型
- 長達 12 年,Go 泛型才引入,是政治,還是技術問題?Go泛型
- C# 泛型集合的自定義型別排序C#泛型型別排序
- 泛型方法、初始集合和集合的遍歷泛型
- 轉向Kotlin——泛型Kotlin泛型
- C#泛型鍵值對集合C#泛型
- Java反射給泛型集合賦值Java反射泛型賦值
- Spring帶泛型的ApplicationEvent無法監聽問題分析(轉載)Spring泛型APP
- 泛型類、泛型方法及泛型應用泛型
- 【java】【泛型】泛型geneticJava泛型
- C#類繼承自泛型集合C#繼承泛型
- Java 中的泛型 集合(List,Set) MapJava泛型
- Java入門教程十二(集合與泛型)Java泛型
- 007 通過連結串列學Rust之支援泛型Rust泛型
- Gson通過藉助TypeToken獲取泛型引數的型別的方法泛型型別
- 泛型類和泛型方法泛型
- Java泛型中<?> 和 <? extends Object>的異同分析Java泛型Object
- 泛型--泛型萬用字元和泛型的上下限泛型字元
- Golang引入泛型:Go將Interface{}替換為“Any”Golang泛型
- 8.集合、泛型、列舉、註解、反射泛型反射
- Go 泛型之泛型約束Go泛型
- TypeScript 泛型介面和泛型類TypeScript泛型
- 泛型泛型
- 型別 VS 泛型型別泛型
- TypeScript 泛型型別TypeScript泛型型別
- 面試中Java泛型問題一文搞定面試Java泛型
- 15個問題告訴你如何使用Java泛型Java泛型
- Java集合 Collection、Set、Map、泛型 簡要筆記Java泛型筆記
- C#中的介面和泛型集合探討C#泛型
- Java進階學習之集合與泛型(1)Java泛型
- 泛型最佳實踐:Go泛型設計者教你如何用泛型泛型Go
- 敏捷轉型過程中避不開的4個問題敏捷
- 泛型類、泛型方法、型別萬用字元的使用泛型型別字元