首頁  >  問答  >  主體

java中<T> T和T的差別?

#為什麼會報錯? first不就是T型嗎?還有<T> T和T有什麼差別?

伊谢尔伦伊谢尔伦2712 天前689

全部回覆(3)我來回復

  • 高洛峰

    高洛峰2017-05-17 10:09:21

    如果你希望 getMax 方法的返回值类型为 T,就要这样去定义getMax方法:

    public T getMax()

    如果你希望 getMax 方法傳回值的型別由呼叫者決定,那就這樣去定義 getMax 方法:

    public <A> A getMax() {
        //...
        return (A)result;
    }

    這裡的 A ,一定不能與類別名稱宣告的 T 是同個字母。

    簡而言之,你說的 T 和 T 根本是兩種不同的用途。

    回覆
    0
  • P粉504247697

    老師好,想問這裡為什麼A一定不能跟T是同字母?我試了一下是可以的

    P粉504247697 · 2022-08-30 01:01:47
  • 阿神

    阿神2017-05-17 10:09:21

    你應該把第二個去掉.
    是定義泛型 T是使用泛型
    你需要了解泛型類別和泛型方法

    出現原因類別上的和方法上的不應重複出現,不然會認為是在方法上重新定義了泛型.

    回覆
    0
  • 取消回覆