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

java 方法泛型入?yún)和String的重載關(guān)系詳解

 更新時(shí)間:2022年02月15日 09:59:23   作者:赫雙炏  
這篇文章主要介紹了java 方法泛型入?yún)和String的重載關(guān)系詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

方法泛型入?yún)和String的重載關(guān)系

重載的基本知識(shí)不在這里討論了

重載的一個(gè)關(guān)鍵理論,如果方法名相同,參數(shù)個(gè)數(shù)、父類(lèi)型、位置也相同,則調(diào)用更加特殊化一個(gè)方法。

多余的沒(méi)寫(xiě),大家可以運(yùn)行一下下面的代碼,然后理解一下就ok了。

public class TestMain {?
?? ?public static void main(String[] args) {
?? ??? ?TestMain t = new TestMain();
?? ??? ?t.func("message");
?? ??? ?t.func(new String("message"));
?? ??? ?t.func(new Object());
?? ?}
?
?? ?protected <T> void func(T data) {
?? ??? ?System.out.println("fun1" + data);
?? ?}
?
?? ?protected void func(String data) {
?? ??? ?System.out.println("fun2" + data);
?? ?}?
}

由于string和T相比較,帶有String data入?yún)⒌姆椒ǜ犹厥饣?,所以?dāng)傳入String參數(shù)的時(shí)候,會(huì)調(diào)用第2個(gè)func。

網(wǎng)上還有關(guān)于null入?yún)⒌挠懻?,我理解是由于null入?yún)蓚€(gè)方法都可以,所以會(huì)選擇更加特殊化的方法,也就是第二個(gè)func。

這里可以試一下,定義一個(gè)Object入?yún)⒌姆椒?,編譯器會(huì)直接說(shuō)與T data入?yún)⒌姆椒ㄆ缌x。

(T是一個(gè)泛型,沒(méi)有具體說(shuō)明類(lèi)型,這里類(lèi)似于Object類(lèi)型)

重載遇到泛型的問(wèn)題

今天被問(wèn)到一個(gè)有意思的問(wèn)題,大家都知道重載的概念吧:一個(gè)類(lèi)中定義同名的方法,參數(shù)表不同(參數(shù)類(lèi)型,或者參數(shù)個(gè)數(shù)不通);

但是,如果是下面這個(gè)兩個(gè)方法呢

public static int fn(List<Integer> index) {?
? ?return 1;?
}?
public static String ?fn(List<String> str) {?? ?
? ?return "str";?
}?

同名的兩個(gè)方法,參數(shù)表中用到了集合,參數(shù)表里的泛型不一樣,那么到底這樣能不能編譯通過(guò)呢?

反復(fù)求證,得出以下結(jié)論

使用Sun JDK的Javac來(lái)進(jìn)行編譯會(huì)通過(guò),而其他編譯器可能會(huì)拒絕編譯這段代碼

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot使用@data注解減少不必要代碼

    springboot使用@data注解減少不必要代碼

    這篇文章主要介紹了springboot使用@data注解減少不必要代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • SpringMVC如何用Post方式重定向

    SpringMVC如何用Post方式重定向

    這篇文章主要介紹了SpringMVC如何用Post方式重定向,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 實(shí)例解析Json反序列化之ObjectMapper(自定義實(shí)現(xiàn)反序列化方法)

    實(shí)例解析Json反序列化之ObjectMapper(自定義實(shí)現(xiàn)反序列化方法)

    這篇文章主要介紹了實(shí)例解析Json反序列化之ObjectMapper,json自定義序列化的方法,需要的朋友可以了解下。
    2017-09-09
  • spring注入配置文件屬性到j(luò)ava類(lèi)

    spring注入配置文件屬性到j(luò)ava類(lèi)

    這篇文章主要為大家介紹了spring注入配置文件屬性到j(luò)ava類(lèi)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • java 關(guān)鍵字static詳細(xì)介紹及如何使用

    java 關(guān)鍵字static詳細(xì)介紹及如何使用

    這篇文章主要介紹了java 關(guān)鍵字static詳細(xì)介紹及如何使用的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Java多線(xiàn)程 樂(lè)觀鎖和CAS機(jī)制詳細(xì)

    Java多線(xiàn)程 樂(lè)觀鎖和CAS機(jī)制詳細(xì)

    這篇文章主要介紹了Java多線(xiàn)程 樂(lè)觀鎖和CAS機(jī)制,樂(lè)觀鎖是對(duì)于數(shù)據(jù)沖突保持一種樂(lè)觀態(tài)度,操作數(shù)據(jù)時(shí)不會(huì)對(duì)操作的數(shù)據(jù)進(jìn)行加鎖,需要的朋友可以參考下
    2021-10-10
  • java 與web服務(wù)器鏈接的實(shí)例

    java 與web服務(wù)器鏈接的實(shí)例

    這篇文章主要介紹了java 與web服務(wù)器鏈接的實(shí)例的相關(guān)資料,使用net.Socket類(lèi)sock.getInetAddress()方法獲得與Web服務(wù)器連接,需要的朋友可以參考下
    2017-07-07
  • SpringBoot在啟動(dòng)類(lèi)main方法中調(diào)用service層方法報(bào)“空指針異?!暗慕鉀Q辦法

    SpringBoot在啟動(dòng)類(lèi)main方法中調(diào)用service層方法報(bào)“空指針異?!暗慕鉀Q辦法

    這篇文章主要介紹了SpringBoot在啟動(dòng)類(lèi)main方法中調(diào)用service層方法報(bào)“空指針異常“的解決辦法,大多數(shù)情況下,我們使用Springboot是創(chuàng)建一個(gè)maven項(xiàng)目,然后通過(guò)controller層的接口調(diào)用,但也有特殊情況,文章介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • Java 在PDF中添加騎縫章示例解析

    Java 在PDF中添加騎縫章示例解析

    這篇文章主要介紹了Java 在PDF中添加騎縫章示例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java處理數(shù)據(jù)庫(kù)不支持的emoji表情符問(wèn)題解決

    java處理數(shù)據(jù)庫(kù)不支持的emoji表情符問(wèn)題解決

    這篇文章主要介紹了java處理數(shù)據(jù)庫(kù)不支持的emoji表情符問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論