欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java7 簡化變參方法調(diào)用實例方法

 更新時間:2019年11月24日 10:59:44   作者:springup  
在本篇文章里我們給大家整理的是關于java7 簡化變參方法調(diào)用實例方法以及實例代碼,需要的朋友們學習下。

這是所有修改里最簡單的一個,只是去掉了方法簽名中同時出現(xiàn)變參和泛型時才會出現(xiàn)的類型警告信息。

換句話說,除非你寫代碼時習慣使用類型為T的不定數(shù)量參數(shù),并且要用它們創(chuàng)建集合,否則你就可以進入下一節(jié)了。如果你想要寫下面這種代碼,那就繼續(xù)閱讀本節(jié):

public static <T> Collection<T> doSomething(T... entries) {
 ...
}

還在?很好。這到底是怎么回事?

變參方法是指參數(shù)列表末尾是數(shù)量不定但類型相同的參數(shù)方法。但你可能還不知道變參方法是如何實現(xiàn)的?;旧?,所有出現(xiàn)在末尾的變參都會被放到一個數(shù)組中(由編譯器自動創(chuàng)建),并作為一個參數(shù)傳入。

這是個好主意,但是存在一個公認的Java泛型缺陷——不允許創(chuàng)建已知類型的泛型數(shù)組。比如下面這段代碼,編譯就無法通過:

HashMap<String, String>[] arrayHm = new HashMap<>[2]; 

不可以創(chuàng)建特定泛型的數(shù)組,只能這樣寫:

HashMap<String, String>[] warnHm = new HashMap[2];

可這樣編譯器會給出一個只能忽略的警告。你可以將warnHm的類型定義為HashMap<String,String>數(shù)組,但不能創(chuàng)建這個類型的實例,所以你不得不硬著頭皮(或至少忘掉警告)硬生生地把原始類型(HashMap數(shù)組)的實例塞給warnHm。

這兩個特性(編譯時生成數(shù)組的變參方法和已知泛型數(shù)組不能是可實例化類型)碰到一起時,會令人有點頭疼。看看下面這段代碼:

HashMap<String, String> hm1 = new HashMap<>();
HashMap<String, String> hm2 = new HashMap
Collection<HashMap<String, String>> coll = doSomething(hm1,hm2);

編譯器會嘗試創(chuàng)建一個包含hm1和hm2的數(shù)組,但這種類型的數(shù)組應該是被嚴格禁止使用的。面對這種進退兩難的局面,編譯器只好違心地創(chuàng)建一個本來不應出現(xiàn)的泛型數(shù)組實例,但它又覺得自己不能保持沉默,所以還得嘟囔著警告你這是“未經(jīng)檢查或不安全的操作”。

從類型系統(tǒng)的角度看,這非常合理。但可憐的開發(fā)人員本想使用一個十分靠譜的API,一看到這些嚇人的警告,卻得不到任何解釋,不免會內(nèi)心忐忑。

以上就是本次介紹的全部知識點內(nèi)容,希望我們整理的內(nèi)容能夠幫助到大家。

相關文章

  • Spring Security基于散列加密方案實現(xiàn)自動登錄功能

    Spring Security基于散列加密方案實現(xiàn)自動登錄功能

    為了提高項目的用戶體驗,我們可以在項目中添加自動登錄功能,當然也要給用戶提供退出登錄的功能。接下來學習下Spring Security基于散列加密方案實現(xiàn)自動登錄功能,一起看看吧
    2021-09-09
  • SpringMvc自動裝箱及GET請求參數(shù)原理解析

    SpringMvc自動裝箱及GET請求參數(shù)原理解析

    這篇文章主要介紹了SpringMvc自動裝箱及GET請求參數(shù)原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • 關于Nacos和Eureka的區(qū)別及說明

    關于Nacos和Eureka的區(qū)別及說明

    這篇文章主要介紹了關于Nacos和Eureka的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解Maven多模塊打包遇到的問題解決方法

    詳解Maven多模塊打包遇到的問題解決方法

    這篇文章主要介紹了詳解Maven多模塊打包遇到的問題解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 基于SpringBoot和PostGIS的某國基地可視化實戰(zhàn)

    基于SpringBoot和PostGIS的某國基地可視化實戰(zhàn)

    本文以Java開發(fā)語言為例,使用SpringBoot框架來進行后臺開發(fā),詳細講解如何使用Leaflet對PostGIS的全球基地信息進行Web可視化,最后分享Web可視化結(jié)果,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 基于Java8實現(xiàn)提高Excel讀寫效率

    基于Java8實現(xiàn)提高Excel讀寫效率

    這篇文章主要介紹了基于Java8實現(xiàn)提高Excel讀寫效率,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • springboot增加注解緩存@Cacheable的實現(xiàn)

    springboot增加注解緩存@Cacheable的實現(xiàn)

    這篇文章主要介紹了springboot增加注解緩存@Cacheable的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java實現(xiàn)數(shù)獨小游戲

    Java實現(xiàn)數(shù)獨小游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)數(shù)獨小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Mybatis插件擴展及與Spring整合原理分析

    Mybatis插件擴展及與Spring整合原理分析

    這篇文章主要介紹了Mybatis插件擴展及與Spring整合原理,本文通過實例文字相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Spring Security攔截器引起Java CORS跨域失敗的問題及解決

    Spring Security攔截器引起Java CORS跨域失敗的問題及解決

    這篇文章主要介紹了Spring Security攔截器引起Java CORS跨域失敗的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論