關於泛型中的理解

2022-03-06 13:16:02 字數 1146 閱讀 2685

public static t min(listt);

對於上面定義的泛型方法min中,comparable指的是乙個介面而不是乙個類,這點應該注重注意下。

如果想呼叫這個方法,最關鍵的是傳入的t型別必須已經是實現了comparable介面中compareto()這個方法。

比如說下面的這個student類:

public class student implements comparable

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

@override

public int compareto(object o)

}假設我們是根據學生的姓名做公升序排列,我們在compareto介面中用到string中自帶的comparedto方法,它為我們提供了字串的大小比較。

//當給定的型別t實現了comparable介面中的方法時,才可以使用泛型進行min的比較。

//基本型別都已經實現了comparable介面的方法,所以可以之間比較,自己建立的student類中已實現comparable中的

//comparedto方法

public static t min(listt)

}return m;

}這個是我們自己寫的min方法,裡面的t可以是基本的型別,或者使我們剛才定義的student或者其他型別,但前提是該型別必須實現了comparable介面。

該方法可以取出列表中「最小」的那個元素,最小是根據需求來決定的。基本型別中的判定規則已經訂好,我們自己定義的型別中的比較規則可以由自己來寫,

可以根據學生的姓名或者年齡等排序。

public static void main(string args) ;

liststudent = arrays.aslist(ss);

student mins = min(student);

system.out.println(mins.getname());

}自己在main函式中建立乙個學生型別的列表,最後在學生型別的列表中選取名字排名最靠前的那個。

最後的輸出結果:

cm

關於泛型,什麼是泛型,如何理解泛型

泛型是jdk5中引入的特性,它提供了編譯時型別安全檢測機制,該機制允許在編譯時檢測到非法的型別,就不至於在執行時出現轉換異常,它的本質是引數化型別 即以任何型別 t 作為引數,在使用時可以傳入型別t的具體值 t 也就是將型別由原來的具體型別用引數t表示 即型別引數化 然後在使用 呼叫時傳入具體的型別...

泛型的理解

泛型是編譯器層面上的而不是虛擬機器上的,虛擬機器上不存在泛型.x.可以使用泛型的有 類,介面和方法.泛型方法可以直接定義在普通類中 方法的如下 public t gett t t public static extends abc t gett t t 是必須存在的,可以限定返回值和引數tx.泛型在...

Java中泛型的理解(二)

主要總結的內容萬用字元 受限泛型 泛型與子類繼承的限制 一.萬用字元 在開發中物件的引用傳遞是最常見的,如果在泛型類的操作中,在進行引用傳遞的時候泛型型別必須匹配才可以傳遞,否則無法傳遞 我們看如下程式 可見泛型物件進行引用傳遞的時候,型別必須一致 在建立泛型類物件時引用型別與例項化型別泛型也必須一...