泛型入門

java集合有個缺點——將一個對象放進集合之后,該對象的編譯類型就會變成Object類型(其運行時類型不變)編譯時不檢查對象的類型。

泛型概念:java的參數化類型,即在創建集合時指定集合元素的類型。

如,List<String> strList=new ArrayList<String>(); ?后面的String可省略不寫

strList.add(5); ? 會引起編譯錯誤,因為已經指定strList 集合存放的數據類型為String類型了,不能存放其他類型的對象。輸出時不用強制類型轉換。

泛型實質:允許在定義接口、類和方法時使用類型形參,類型形參將在聲明變量、創建對象和調用方法時動態的指定。

 1 public class Apple<T> {
 2     private T info;
 3     public Apple(){    
 4     }    // 構造器名依然為Apple,而不是Apple<T>
 5     public  Apple(T info){
 6         this.info=info;    
 7     }
 8 
 9     public static void main(String[] args) {
10         Apple<String> a1=new Apple<>("蘋果");
11         System.out.println(a1.info);
12         Apple<Double> a2=new Apple<>(23.56);
13         System.out.println(a2.info);
14     }
15 
16 }

從泛型類派生子類

?可以從帶泛型聲明的接口、類中創建其實現類或繼承類,此時使用這些接口或類時不能包含類型形參

public class A extends Apple<T>{}    此處為錯誤寫法

public class A extends Apple<String>{}  此處為正確寫法   

public class A extends Apple    使用類或接口時也可以不形參傳入實參

調用方法是必須為所有的數據形參出入參數值。

不能在靜態方法、靜態變量和靜態代碼塊的聲明和初始化中使用類型參數。

public class B<T> {static T t1;public static void study(T t1){    }
}

?

轉載于:https://www.cnblogs.com/peng111/p/5648436.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271419.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271419.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271419.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機系統基礎:設備管理采用的相關技術知識筆記

1、通道技術 設備管理的通道技術是為了數據傳輸可以獨立于CPU&#xff0c;讓CPU從繁瑣的I/O工作中解脫出來。設置通道后&#xff0c;CPU、只需要向通道發I/O指令,通道接收到指令后&#xff0c;從主存中取出本次要執行的通道程序并執行&#xff0c;只有完成了I/O任何后才會向CPU…

vue 滑動置頂功能_VUE 實現滾動監聽 導航欄置頂的方法_蠟燭_前端開發者

非重點的代碼&#xff0c;比如樣式啥的&#xff0c;我就不放上來了&#xff0c;一筆帶過簡略的寫一下1. data ()data () {paddingBottom: 1.5rem, // 給最外層div一個padding-bottom// 因為footer是fixed定位 如果padding-bottom為0 數據列表拉到最下面的時候 會有部分數據被fo…

treelist自動定位行_國內首創!金川集團千米深井雙定位補償搖臺投用

新甘肅客戶端金昌訊(新甘肅甘肅日報記者謝曉玲)近日&#xff0c;金川集團二礦區18行副井提升系統罐籠自動化改造項目順利完成并投入使用。項目研發的雙定位補償搖臺是國內同行業首創&#xff0c;可以實現罐籠在井筒內水平和豎直方向的同步定位&#xff0c;從根本上解決了傳統搖…

css樣式圖片、漸變、相關小知識

一&#xff0c;background-position&#xff1a;&#xff08;圖片定位&#xff09; 三種寫法&#xff1a; 1&#xff09;&#xff1a;按&#xff05;比&#xff0c;左上角最小&#xff08;0&#xff05;&#xff0c;0%&#xff09;&#xff0c;右下角最大&#xff08;100%&…

計算機系統基礎:磁盤調度知識筆記

1、磁盤調度介紹 磁盤可以被多個進程共享的設備&#xff0c;如果有多個進程請求訪問磁盤時&#xff0c;為了保證信息的安全&#xff0c;系統的每一時刻只允許一個進程進入磁盤進行I/O操作&#xff0c;別的進程需要等待。 磁盤需要采用一種適當的算法&#xff0c;使每個進程對磁…

freemarker 去掉最后一個逗號_從零開始做一個SLG游戲(六)游戲系統以及配置表...

本文主要是來梳理下游戲內的基本系統(雖然只是照搬polytopia的&#xff0c;但是還是要總結一下)&#xff0c;并預先做一些配置表&#xff0c;并實現讀取。一、經濟系統1.總述經濟系統可以是整個游戲的核心。在本游戲中只有一種資源&#xff1a;金幣。每個回合都會獲得一定數量的…

C++ 錯誤總結

1、出現不完全的類型‘class CJdThread’的非法使用或前向聲明 src/../include/ComCommon.h:37:27: 錯誤&#xff1a;對不完全的類型‘class CJdThread’的非法使用 class CComDataProc:public CJdThread ^src/../include/ComCommon.h:7:7: 錯誤&#xff1a;‘class CJdThread’…

計算機系統基礎:文件管理相關知識筆記

一、文件的相關概念 1、為什么要有文件管理? 文件系統主要是為了方面用戶訪問外部存儲器信息&#xff0c;而不去關注內部存儲的機制&#xff0c;只需要根據文件名就可以高效的存取信息。 2、文件的定義 文件是這一組具有符號名、在邏輯上具有完整意義的一組相關信息項的集合。…

list 根據某個數字所在位置_【Python學習筆記】09、使用list和tuple

listPython內置的列表數據類型是&#xff1a;list。list是一種有序的集合&#xff0c;可以隨時添加和刪除其中的元素。如&#xff1a;>>> classmates [Kuaie, Bob, Tracy]>>> classmates[Kuaie, Bob, Tracy]變量classmates就是一個list。用len()函數可以獲得…

連接maven_如何在Eclipse中使用Maven工程連接遠程的Spark

如何在Eclipse中使用Maven工程連接遠程的Spark本地Spark跑不會出現什么問題&#xff0c;但是切換到服務器上各種問題。異常java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to fieldorg.apache.spark.api.java.JavaRDDLike$$anonf…

FastJSON的依賴

<!-- 添加 FastJSON依賴 --> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.59</version> </dependency>

莫隊模板

莫隊的模板&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 嘿嘿嘿 #include<bits/stdc.h> using namespace std; const int maxn 1000005; inline int read() {int x0,f1;char chgetchar();while(ch>9||ch<0){if(ch-)f-1;chgetchar();}while(ch&g…

計算機系統基礎:文件的存取和存儲空間管理知識筆記

1、文件的存取 文件的存取實際上就是針對文件存儲器上物理塊的讀寫操作。存取方法主要有順序存儲、隨機存儲兩種。 2、文件存儲空間管理 磁盤分配表&#xff1a;外存空閑空間管理的數據結構。 2.1 空閑空間管理方法 1、空閑區表 將外存空間的一個連續未分配的區域稱為空閑區。操…

語言篩選法選素數怎么解決輸出超限_論文深耕 | 什么時候才能把文獻看完?——論文的正確篩選、閱讀順序...

Hello!這是你與「大學生科研競賽」的第 50 次相遇。搞科研免不了要看文獻&#xff0c;一提到看文獻就有很多人頭疼&#xff0c;“那么多文獻什么時候才能看完啊&#xff1f;”01篩選論文這個時候就需要我們對文獻有一個篩選&#xff0c;篩選的辦法也很簡單&#xff1a;1標題首先…

ft2232驅動安裝方法_ST-Link資料03_ST-Link固件升級、驅動下載安裝方法

說明&#xff1a;本文原創作者『strongerHuang』本文首發于微信公眾號『嵌入式專欄』&#xff0c;同時也更新在我的個人網站&#xff1a;EmbeddedDevelop一、寫在前面前兩篇文章講述的都是關于ST-Link的一些理論知識&#xff0c;建議初學者看看&#xff1a;ST-Link資料01_ST-Li…

Java 泛形通配符 ?

Class<Integer> cla;與Class<?> cl; 前一個表示baicla只能指向Integer這種類型&#xff0c;而后一個cl表示可以du指向任意類型。 cla Integer.class 可以&#xff0c;但cla Double.class就不可zhi以。 但是cl Integer.class 可以&#xff0c;cl Double.class也…

操作系統基礎:計算機作業管理知識筆記

1、計算機作業的概念計算機中的作業是為了完成某個用戶的計算任務所做工作的總和。作業管理程序&#xff1a;操作系統中用來控制作業進入、執行、撤銷的一組程序。2、作業與作業的控制方式脫機控制方式&#xff1a;用戶需要把自己需要計算機完成的任務用作業控制語言編寫成作業…

easyui的驗證

多重驗證&#xff1a; Js代碼 { field : startPort, title : "起始端口", editor: "text", width : 50, editor: { …