第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

學(xué)習(xí)筆記——泛型

標(biāo)簽:
Java

泛型的意义:
泛型用来保证类型的统一,主要目的之一就是用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性。
1.类型安全,通过设置泛型,可以让编译器验证类型
2.消除强制转换。如果不用泛型,将元素从容器中取出时,都是由object类型向目标类型强制转换。而由于泛型的擦除,所有的泛型类型变量都会被替换为原始类型,在获取的时候,集合会实现变量的强制转换,转换是隐式的。

  1. 泛型类:public class Test<T>

  2. 泛型接口:public interface Generator<T> {T next()}
    泛型可以用于接口,例如生成器Generator,是一种专门负责创建对象的类。

  3. 泛型方法:public <T> void test(T x)
    是否拥有泛型方法,与这个类是否泛型没有关系。

类型变量限定:
<T extends myClass>
<T super myClass>
***通配符:<?>

泛型的擦除:
当你在使用泛型时,任何具体的类型信息都被擦除了。编译器在编译的时候去掉类型信息,生成不包含类型信息的java字节码。
泛型类型参数有限定的将擦除到它的第一个边界,无限定的变量会擦除到object。

泛型的局限:

  1. 基本类型无法作为类型参数,但是java具备自动基本类型包装功能。原因是类型擦除后,原始类型变为object,而object不能存储int等基础类型的值。

  2. 由于擦除,一个类不能实现同一个泛型接口的两种变体。

  3. 不能创建参数化类型的数组。如Pair<String>[] table = new Pair<String>[10];是错误的,因为擦除会将string信息抹去,所以只要是Pair类型的对象都可以被加入。

  4. 使用带有泛型类型参数的转型或instanceof不会有任何效果,也不能实例化类型变量。用反射调用class.newInstance()解决

  5. 在静态方法和静态变量中不能使用泛型。因为泛型中泛型参数的实例化是在定义对象时指定,而静态方法和变量可以不需要对象就可以调用。

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消