目錄
問題內容
解決方法
首頁 Java 這在 Java 泛型中怎麼可能呢?

這在 Java 泛型中怎麼可能呢?

Feb 08, 2024 pm 11:20 PM

php小編蘋果為您解答:在Java泛型中,"這在 Java 泛型中怎麼可能呢?"這樣的問題其實是有可能的。因為Java泛型允許使用萬用字元來表示不確定的類型,例如使用 "?" 表示任意型別。當我們在定義泛型方法或泛型類別時,可以使用通配符來限定參數類型或傳回值類型,從而實現一些特定的功能。雖然在某些情況下,可能會因為類型擦除而導致一些限制,但透過合理的設計和使用,我們可以在Java泛型中實現許多看似不可能的操作。

問題內容

我剛剛注意到,當談到 Java 泛型時,一些對我來說非常違反直覺的事情。我們來看看這個方法:

public static <T> void inspect(T a, T b) { // ... }
登入後複製

可以進行以下呼叫:

inspect(new Integer(3), new String("What? How?"))
登入後複製

我認為一旦類型T被推導出來,它就必須是一致的,就像兩個字串或兩個整數一樣。 這沒有多大意義,因為如果我的方法中有以下行:

T tmp
登入後複製

T是什麼?

誰能解釋一下嗎?

解決方法

主要結果是IntegerString都是從Serialized實現的。

所以你的程式碼等於:

public static <T extends Serializable> void inspect(T a, T b) {
    System.out.println(a + "_" + b);
}
登入後複製

如果變更為blow程式碼,則僅在IntegerNumber子類別中有效。

public static <T extends Number> void inspect(T a, T b) {
    System.out.println(a + "_" + b);
}
登入後複製

這是一個更好的例子:

public class MyTest {

    @Test
    public void demo() {
        inspect(new FirstSon("a"), new SecondSon("b"));
    }

    public <T> void inspect(T a, T b) {
        System.out.println(a + "_" + b);
    }


    interface Parent {
    }

    static class FirstSon implements Parent {
        private String name;

        public FirstSon(String name) {
            this.name = name;
        }
    }

    static class SecondSon implements Parent {
        private String name;

        public SecondSon(String name) {
            this.name = name;
        }
    }
}
登入後複製

以上是這在 Java 泛型中怎麼可能呢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24