小編這次要給大家分享的是詳解Java靜態(tài)泛型使用方法,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

站在用戶的角度思考問題,與客戶深入溝通,找到魯?shù)榫W(wǎng)站設(shè)計(jì)與魯?shù)榫W(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋魯?shù)榈貐^(qū)。
前言:當(dāng)工具類對(duì)多個(gè)模型類進(jìn)行排序,比較等操作的時(shí)候,需要書寫大量重復(fù)代碼,因?yàn)閼腥丝傄朐趺词∈碌模钥紤]使用泛型這個(gè)玩意簡化代碼
案例:當(dāng)前存在兩個(gè)模型類,F(xiàn)ruit和Person,他們都需要排序方法而且業(yè)務(wù)邏輯各不相同,因此需要分別寫兩個(gè)排序方法,但因?yàn)榕判蛳嗤牡胤教啵ㄒ坏膮^(qū)別就是判斷兩個(gè)對(duì)象的大小關(guān)系,于是在此做簡化操作。
執(zhí)行步驟:
1、編寫模型類接口 interface Model
public interface Model<T> {
public int compareTo(T model);
}這里僅需要定義一個(gè)比較的方法
2、編寫Person類 class Person
public class Person implements Model<Person> {
private String name;
public Person(String _name) {
this.name = _name;
}
@Override
public int compareTo(Person _person) {
return this.name.compareToIgnoreCase(_person.name);
}
}Fruit的代碼我就不放上來了,因?yàn)闉榱伺e例我這倆的比較方法寫的是一樣的,但是實(shí)際業(yè)務(wù)代碼可能是不一樣的
3、編寫工具類 class Sort
public class Sort {
public static <T extends Model<T>> void sort(List<T> list) {
for (int i = 0; i < list.size() - 1; i++) {
for (int j = i; j < list.size(); j++) {
if (list.get(i).compareTo(list.get(j)) > 0) {
T swap = list.get(i);
list.set(i, list.get(j));
list.set(j, swap);
}
}
}
}
}隨便找了個(gè)排序算法就套進(jìn)去了
然后就是主函數(shù)的調(diào)用
public class Main{
public static void main(String[] args){
LinkedList<Person> list = new LinkedList<>();
list.add(new Person("admin"));
list.add(new Person("root"));
list.add(new Person("huawei"));
list.add(new Person("cisco"));
Sort.sort(list);
for (Person item : list) {
System.out.println(item.toString());
}
}
}4、Fruit類只要按照Person類一樣實(shí)現(xiàn)Model的compareTo方法就可以使用Sort.sort方法進(jìn)行排序了
后記:最開始我的想法是寫個(gè)Model接口,在接口中寫一個(gè)compareTo方法,然后形參類型不知道咋寫了
如果寫Model的話,Person實(shí)現(xiàn)compareTo方法的時(shí)候形參類型也肯定是Model
我這塊的邏輯比較簡單,用name字段進(jìn)行比較,如果在Model接口加上getName方法后,怎么看都不舒服
Model類不一定都有name字段,而且這樣Person類就可能會(huì)與Fruit類進(jìn)行比較
雖然可以在邏輯上不這么搞,但是怎么都看得難受啊,于是就想到用泛型搞這玩意
看完這篇關(guān)于詳解Java靜態(tài)泛型使用方法的文章,如果覺得文章內(nèi)容寫得不錯(cuò)的話,可以把它分享出去給更多人看到。
本文標(biāo)題:詳解Java靜態(tài)泛型使用方法
網(wǎng)頁路徑:http://www.chinadenli.net/article2/pgcioc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、自適應(yīng)網(wǎng)站、網(wǎng)站導(dǎo)航、定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)