需求:定義乙個字串集合,要求字串按照長度排序。
在不使用泛型前,我們的**如下。
public class genericdemo }}
// 自定義乙個比較器
class stringcomperator implements comparator
}
分析:我們可以觀察到,無論是在迭代器或者比較器,我們都需要進行強制型別轉換,才能訪問其物件。而且,我們只是主觀認為集合中放的就是string物件。這樣做其實是不安全的。當不小心放入集合的物件並不是string型別物件,就會發生classcastexception異常。
增加泛型**如下:
public class genericdemo }}
class stringcomperator implements comparator
}
集合增加泛型,限定集合內只能裝string型別物件。當用迭代器方法集合元素的方法,也不需要型別強轉。自定義迭代器物件也是一樣的道理。
我們通過檢視api發現,比較器comparator也是乙個泛型介面。
comparator介面中的compare方法中的引數列表也支援泛型。
Java中泛型 使用
泛型 1.5 之後出現 提高安全 1 泛型 確定 集合容器的型別。2 接收一種資料型別,引用資料型別 arraylistlis new arraylist 目的 將執行時期的 錯誤 轉化到 編譯時期,提高了安全性!3 不需要 強制型別轉換.更加安全!泛型的擦除 泛型在編譯時期使用!使用完畢直接擦除。...
Java泛型使用詳解
一 泛型介面 1 第一種 在子類的定義上也宣告泛型型別。package com.xieke.generics.impl.demo1 inte ce info class infoimplimplements info public void setvar t var override public ...
Java中泛型的各種使用
1.普通的泛型使用 在使用類的時候後面的 中的型別就是我們確定的型別。public class myclass1 public void setvar t var 最普通的泛型使用,只有乙個泛型型別 test public void testmyclass1 和普通的泛型使用基本一樣,只是我們可以在...