泛型 為什麼要在方法前寫

2021-09-11 23:31:35 字數 825 閱讀 4013

public class test

public void sett(t name)

public void sett2(t name)

public t gett2(t name)

public t gett3(t name)

public static void main(string args)

}

public class classname

void show_2(e e)

void show_3(t t)

public static void main(string args)

}class fruit

} @override

public string tostring()

}class person

}

與是一樣的。但是 和 t 完全是兩個概念 ,t是泛型,是泛型的宣告,宣告了的方法可以不受類的的約束

意思就是說classname中一旦t被指定為fruit後那麼show_1沒有字首的話,該方法中只能是show_1 (fruit物件)

而要是有字首或的話,那麼就是告訴編譯器對它說:這是新指定的乙個型別,跟classname類物件中的t沒有關係。

從上面看,那就是這個方法返回值前也加個的話,這個t就代表該方法自己獨有的某個類,而不去和類中限定的t產生衝突,你直接換成會更容易理解的。

可以理解為乙個型別的宣告,否則返回值和函式引數中突然出現了乙個"t",編譯器知道這是什麼東西,肯定會報錯

就跟int a;以後才能使用a這個變數乙個道理

泛型 為什麼是泛型?

需求 先需編寫乙個程式,用棧 stack 進行進棧和出棧操作,並對棧中的元素進行運算。方案一 假設元素為int型別,則可使用 code class stack public void push int x public int pop 客戶 code class test 然而,現在需求發生變化。客...

為什麼使用泛型

泛型 當我們將乙個物件放入集合,集合不會記住此物件的型別,當再次取出時,該物件的變異型別為object,但其執行時型別仍然為其本身型別。強制轉換很容易出現classcastexception異常 listarraylist new arraylist 把引數string型別當成引數傳入容器,指定容器...

泛型方法前為什麼要加

package com.test05.mytest class fruit class person class classname void show 2 e e void show 3 t t public static void main string args 輸出 而show 2 和sho...