java泛化_JAVA泛化及为什么需要泛化
展開全部
泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一32313133353236313431303231363533e58685e5aeb931333361326262個參數(shù)。
比如,有一種類型為List,此時該List可以是任意類型的列表,如Integer,String等等。
如果把List類型改為List,則此時只表示整型的列表。
這就是所謂的將操作的數(shù)據(jù)類型指定為一個參數(shù)
那么這么做有什么好處呢?
比如原來我們有如下的程序:List?myIntList?=?new?LinkedList();//?1
myIntList.add(new?Integer(0));//?2
Integer?x?=?(Integer)?myIntList.iterator().next();//?3
在第三行中進(jìn)行了強(qiáng)制類型轉(zhuǎn)換。這個類型轉(zhuǎn)換不僅僅帶來了混亂,它還可能產(chǎn)生一個運行時錯誤(run time error),因為程序員可能會犯錯。
程序員如何才能明確表示他們的意圖,把一個list中的內(nèi)容限制為一個特定的數(shù)據(jù)類型呢?這是generics背后的核心思想。這是上面程序片斷的一個泛型版本:List?myIntList?=?new?LinkedList();?//?1
myIntList.add(new?Integer(0));?//?2
Integer?x?=?myIntList.iterator().next();?//?3
注意變量myIntList的類型聲明。它指定這不是一個任意的List,而是一個Integer的List,寫作:List。我們說List是一個帶一個類型參數(shù)的泛型接口(a generic interface that takes a type parameter),本例中,類型參數(shù)是Integer。我們在創(chuàng)建這個List對象的時候也指定了一個類型參數(shù)。
另一個需要注意的是第3行沒了類型轉(zhuǎn)換。
總結(jié)
以上是生活随笔為你收集整理的java泛化_JAVA泛化及为什么需要泛化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java robot 对象_用Java
- 下一篇: java快速排序的时间复杂度_java