詳解Java靜態泛型使用方法

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

站在用戶的角度思考問題,與客戶深入溝通,找到魯甸網站設計與魯甸網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:成都網站設計、成都網站制作、企業官網、英文網站、手機端網站、網站推廣、域名注冊網站空間、企業郵箱。業務覆蓋魯甸地區。

前言:當工具類對多個模型類進行排序,比較等操作的時候,需要書寫大量重復代碼,因為懶人總要想怎么省事的,所以考慮使用泛型這個玩意簡化代碼

案例:當前存在兩個模型類,Fruit和Person,他們都需要排序方法而且業務邏輯各不相同,因此需要分別寫兩個排序方法,但因為排序相同的地方太多,唯一的區別就是判斷兩個對象的大小關系,于是在此做簡化操作。

執行步驟:

1、編寫模型類接口 interface Model

 public interface Model<T> {
   public int compareTo(T model);
 }

這里僅需要定義一個比較的方法

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的代碼我就不放上來了,因為為了舉例我這倆的比較方法寫的是一樣的,但是實際業務代碼可能是不一樣的

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);
        }
      }
    }
  }
}

隨便找了個排序算法就套進去了

然后就是主函數的調用

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類一樣實現Model的compareTo方法就可以使用Sort.sort方法進行排序了

后記:最開始我的想法是寫個Model接口,在接口中寫一個compareTo方法,然后形參類型不知道咋寫了

如果寫Model的話,Person實現compareTo方法的時候形參類型也肯定是Model

我這塊的邏輯比較簡單,用name字段進行比較,如果在Model接口加上getName方法后,怎么看都不舒服

Model類不一定都有name字段,而且這樣Person類就可能會與Fruit類進行比較

雖然可以在邏輯上不這么搞,但是怎么都看得難受啊,于是就想到用泛型搞這玩意

看完這篇關于詳解Java靜態泛型使用方法的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

本文標題:詳解Java靜態泛型使用方法
網頁路徑:http://m.kartarina.com/article2/pgcioc.html

成都網站建設公司_創新互聯,為您提供做網站自適應網站網站導航定制網站動態網站ChatGPT

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 亚洲中文字幕无码永久在线| 办公室丝袜激情无码播放| 亚洲A∨无码一区二区三区| 亚洲国产精品无码久久一区二区| 日韩精品人妻系列无码专区| 妖精色AV无码国产在线看| 亚洲中文字幕无码久久精品1| 久久国产精品无码HDAV| 国产AV无码专区亚洲AV漫画| 亚洲AV无码AV吞精久久| 麻豆aⅴ精品无码一区二区| 亚洲av无码专区在线观看素人| 亚洲最大天堂无码精品区| 亚洲中文久久精品无码| 无码国内精品久久人妻麻豆按摩| 中文字幕AV无码一区二区三区| 熟妇人妻系列av无码一区二区| 毛片无码一区二区三区a片视频| 少妇精品无码一区二区三区| 国产成人无码a区在线视频| 久久久久亚洲AV无码去区首| 无码人妻精品一区二区三区蜜桃| 亚洲av永久无码精品漫画| 波多野结AV衣东京热无码专区| 无码喷水一区二区浪潮AV| 亚洲精品无码久久久久牙蜜区| 无码人妻久久一区二区三区 | 欧洲精品无码一区二区三区在线播放| AV无码免费永久在线观看| 无码国产福利av私拍| 国产拍拍拍无码视频免费| 日韩精品无码一区二区三区四区| 无码精品前田一区二区| 用舌头去添高潮无码视频| 国产精品亚洲а∨无码播放麻豆| 精品国产V无码大片在线看| 亚洲熟妇无码一区二区三区导航| 无码专区人妻系列日韩精品少妇 | 欧洲人妻丰满av无码久久不卡 | 麻豆aⅴ精品无码一区二区| 久久精品aⅴ无码中文字字幕|