泛型Java
這兩天一直在學習Java中的泛型,發現泛型的出現幫我們苦逼程序猿解決了許多潛在的問題,并為我們程序猿編程減輕了工作量。
下面把我的心得體會與大家共享一下(盡管只是些皮毛):
泛型技術的由來:在集合中可以存儲任意的對象,但是在取出時,如果要使用具體對象的特有方法時,需要進行向下轉型,如果存儲的對象類型不一致,在轉型的過程中,就會出現ClassCastException異常。看下面一個例子:
package cn.itcast.generic.demo;import java.util.ArrayList; import java.util.Iterator;public class GenericDemo {public static void main(String[] args) {ArrayList al= new ArrayList();al.add("abc1"); // Ctrl+Alt+↓ 復制當前行到下一行al.add("faougoa");al.add("ajsogiwewet");Iterator it=al.iterator();while(it.hasNext()){String s=(String)it.next();System.out.println(s.length());}}}
為什么會出現這種情況呢?出現這種情況該怎么解決呢?
出現這種情況的原因就是存儲的對象類型不一致(String類型和Integer類型不一致)。解決辦法就是使用泛型!
這種情況下,我們會提前得到錯誤提示,能快速的知道程序中出錯的地方,并能及時加以修改!
總結:使用泛型的好處:
? ? ? ? ? ?1、泛型是一種安全機制,提高程序安全性。
? ? ? ? ? ?2、將運行時期的ClassCastException異常轉移到了編譯上來,進行檢查,并以編譯失敗的形式提示程序員。有利于程序員盡早解決問題。
? ? ? ? ? ?3、避免了向下轉型的麻煩!
總結
- 上一篇: NYOJ 915 +-字符串
- 下一篇: 华为程序员写代码十几年没有被拿去“祭天”