一、簡介
<T>在List、Set、Map中經常見到,用來限制Class中的參數類型,確保Class中參數的一致性。例如:List<String> list = new ArrayList<>();創建了一個內部參數是String類型的類,list中的操作對象都是String。<?>代表任意java類型,只有在不關心數據的具體類型下才使用通配符表示,但在一些情況下,需要將<?>傳入的數據進行強轉,但這樣不如直接傳入<T>。
另外除了<?>,還有<? extends T>上界通配符和<? super T>下界通配符。<? extends T> 表示傳入數據值需要是T類型或T的子類,<? suprt T>表示傳入數據值需要是T類型或T的超類。
一般來說,<?>主要用於變量上,<T>主要用於類或方法上。下圖中,list的元素類型爲?,但往裏邊添加String時,會顯示出錯,因爲list中的類型是一個未知的java類型,不屬於任何類,所以往裏邊添加數據時會出錯。但可以從list中取出數據,取出的數據類型爲Object。
建議採用的順序是 List<T>、List<?>、List<Object>
二、代碼實例
List<?>是隻讀類型的,不能進行增加、修改操作。
上一篇:Java面試題總結(附答案)
下一篇:【全棧最全Java框架總結】SSH、SSM、Springboot