成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java如何獲取泛型的實(shí)際類型?

MkkHou / 1394人閱讀

摘要:有人問以下情況如何得到泛型參數(shù)的實(shí)際類型由于的類型擦除,沒有辦法獲取,不知道它被賦予了。但可以變通一下對(duì)應(yīng)的類定義是這里知道了實(shí)際類型等基于的語言具有,能方便地獲取實(shí)際類型。

有人問以下情況如何得到泛型參數(shù)的實(shí)際類型:

APIService api = new APIService();

由于Java的類型擦除,沒有辦法獲取,APIService不知道它被賦予了User。

但可以變通一下:

APIService api = APIService.create(User.class);

對(duì)應(yīng)的類定義是:

public class APIService {
  public static  APIService create(Class cls) {
    return new APIService(cls);
  }

  public APIService(Class cls) {
    //這里知道了實(shí)際類型cls
  }
}

Kotlin, Scala等基于JVM的語言具有reified generics,能方便地獲取實(shí)際類型。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/65085.html

相關(guān)文章

  • 淺析Java泛型

    摘要:泛型類在類的申明時(shí)指定參數(shù),即構(gòu)成了泛型類。換句話說,泛型類可以看成普通類的工廠。的作用就是指明泛型的具體類型,而類型的變量,可以用來創(chuàng)建泛型類的對(duì)象。只有聲明了的方法才是泛型方法,泛型類中的使用了泛型的成員方法并不是泛型方法。 什么是泛型? 泛型是JDK 1.5的一項(xiàng)新特性,它的本質(zhì)是參數(shù)化類型(Parameterized Type)的應(yīng)用,也就是說所操作的數(shù)據(jù)類型被指定為一個(gè)參數(shù),...

    godiscoder 評(píng)論0 收藏0
  • java的集合和型的知識(shí)點(diǎn)歸納1

    摘要:接口也是集合中的一員,但它與接口有所不同,接口與接口主要用于存儲(chǔ)元素,而主要用于迭代訪問即遍歷中的元素,因此對(duì)象也被稱為迭代器。迭代器的實(shí)現(xiàn)原理我們?cè)谥鞍咐呀?jīng)完成了遍歷集合的整個(gè)過程。 【Collection、泛型】 主要內(nèi)容 Collection集合 迭代器 增強(qiáng)for 泛型 教學(xué)目標(biāo) [ ] 能夠說出集合與數(shù)組的區(qū)別 [ ] 說出Collection集合的常用功能 [ ]...

    daryl 評(píng)論0 收藏0
  • JAVA運(yùn)行時(shí)的泛型擦除與反序列化的應(yīng)用

    摘要:回到的第二方法的用法,通過上面的分析,我們可以知道,方法其實(shí)也是用來獲取泛型的實(shí)際類型的,這樣就可以將響應(yīng)反序列化為帶泛型的類型了。在很多反序列化的開源組件中,都用了這個(gè)原理例如的方法,所以我們會(huì)經(jīng)常見到實(shí)例化的時(shí)候會(huì)多個(gè)花括號(hào)。 前段日子在使用google-http-client.jar 這個(gè)組件做http請(qǐng)求時(shí),發(fā)現(xiàn)一件有趣的事情,具體代碼如下: try { ...

    weizx 評(píng)論0 收藏0
  • 聊聊Java泛型及實(shí)現(xiàn)

    摘要:靜態(tài)變量是被泛型類的所有實(shí)例所共享的。所以引用能完成泛型類型的檢查。對(duì)于這個(gè)類型系統(tǒng),有如下的一些規(guī)則相同類型參數(shù)的泛型類的關(guān)系取決于泛型類自身的繼承體系結(jié)構(gòu)。事實(shí)上,泛型類擴(kuò)展都不合法。 前言 和C++以模板來實(shí)現(xiàn)靜多態(tài)不同,Java基于運(yùn)行時(shí)支持選擇了泛型,兩者的實(shí)現(xiàn)原理大相庭徑。C++可以支持基本類型作為模板參數(shù),Java卻只能接受類作為泛型參數(shù);Java可以在泛型類的方法中取得...

    lewif 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<