Java泛型類(lèi)與泛型方法的定義詳解
本文實(shí)例講述了Java泛型類(lèi)與泛型方法的定義。分享給大家供大家參考,具體如下:
Java泛型類(lèi)的定義
一 點(diǎn)睛
泛型類(lèi)定義的語(yǔ)法如下:
[訪問(wèn)修飾符] class 類(lèi)名稱(chēng) <T>
泛型類(lèi)的主要作用在于類(lèi)被實(shí)例化后,傳入具體的類(lèi)型參數(shù),對(duì)類(lèi)的成員屬性的類(lèi)型和成員方法的參數(shù)類(lèi)型和返回值類(lèi)型進(jìn)行替換。
二 代碼
public class Base<T> {
T m;
Base(T t) {
m = t;
}
public T getM(){
return m;
}
public void print() {
System.out.println("base print : " + m);
}
public static void main(String[] args) {
Base<String> base=new Base<String>("base class is general");
System.out.println(base.getM());
base.print();
}
}
三 運(yùn)行
base class is general
base print : base class is general
四 說(shuō)明
T可以用任何一種引用類(lèi)型,但是不允許使用基本類(lèi)型,如int、double、char、boolean等是不允許的。泛型類(lèi)定義時(shí),可以使用T來(lái)定義其成員變量和成員方法的返回值和參數(shù)。
Java泛型方法的定義
一 點(diǎn)睛
泛型方法主要用于容器類(lèi),Java中任何方法,包括靜態(tài)的(注意,泛型類(lèi)不允許在靜態(tài)環(huán)境中使用)和非靜態(tài)的,均可以用泛型來(lái)定義,而且和所在類(lèi)是否是泛型沒(méi)有關(guān)系。
下面是泛型方法的定義
[public] [static] <T> 返回值類(lèi)型 方法名(T 參數(shù)列表)
二 代碼
public class GeneralMethod {
public static <U> void print(U[] list) {
System.out.println();
for (int i = 0; i < list.length; i++) {
System.out.print(" " + list[i]);
}
System.out.println();
}
public static void main(String[] args) {
String a[]={"a","b","c","d","e"};
Character b[]={'1','2','3','4','5'};
Integer c[]={1,2,3,4,5};
GeneralMethod.print(a);
GeneralMethod.print(b);
GeneralMethod.print(c);
}
}
三 運(yùn)行
a b c d e
1 2 3 4 5
1 2 3 4 5
四 說(shuō)明
使用泛型方法時(shí),至少返回值或參數(shù)有一個(gè)是泛型定義的,而且應(yīng)該保持一致,否則可能會(huì)受到各種限制,因此,這里建議保持一致。
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
idea創(chuàng)建包含多個(gè)springboot module的maven project的方法
這篇文章主要介紹了idea創(chuàng)建包含多個(gè)springboot module的maven project的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
Java struts2 validate用戶登錄校驗(yàn)功能實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Java struts2 validate用戶登錄校驗(yàn)功能實(shí)現(xiàn)的具體步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟
這篇文章主要介紹了spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Java JSON轉(zhuǎn)成List結(jié)構(gòu)數(shù)據(jù)
這篇文章主要介紹了Java JSON轉(zhuǎn)成List結(jié)構(gòu)數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
SpringBoot RestTemplate 簡(jiǎn)單包裝解析
這篇文章主要介紹了SpringBoot RestTemplate 簡(jiǎn)單包裝解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
SpringCloud實(shí)現(xiàn)灰度發(fā)布的方法步驟
本文主要介紹了SpringCloud實(shí)現(xiàn)灰度發(fā)布的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
java訪問(wèn)者模式的靜態(tài)動(dòng)態(tài)及偽動(dòng)態(tài)分派徹底理解
這篇文章主要為大家介紹了java訪問(wèn)者模式的靜態(tài)動(dòng)態(tài)及偽動(dòng)態(tài)分派徹底理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

