亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java7簡化變參方法是什么

發布時間:2022-01-07 17:42:58 來源:億速云 閱讀:121 作者:iii 欄目:編程語言

本篇內容主要講解“java7簡化變參方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java7簡化變參方法是什么”吧!

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

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

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

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

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

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

不可以創建特定泛型的數組,只能這樣寫:

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

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

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

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

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

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

到此,相信大家對“java7簡化變參方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

拉萨市| 诏安县| 宁乡县| 锦屏县| 嘉鱼县| 佳木斯市| 侯马市| 陇西县| 江城| 罗源县| 花莲市| 确山县| 曲阳县| 泗水县| 绵阳市| 磐安县| 德庆县| 小金县| 朔州市| 星子县| 南江县| 和田市| 区。| 如皋市| 石狮市| 宜城市| 临湘市| 驻马店市| 什邡市| 东方市| 都江堰市| 平利县| 湘潭县| 达尔| 忻城县| 龙海市| 沽源县| 惠安县| 米易县| 二连浩特市| 淳化县|