java泛型机制的好处_java 泛型机制
Java 泛型
泛型這種語法機制,只在程序編譯階段起作用,只是給編譯器參考的(運行階段泛型沒用)
使用泛型的好處是什么?
1.集合中存儲的元素類型統一了
2.從集合中取出的元素類型是泛型指定的類型,不需要進行大量的“向下轉型”
泛型的缺點是什么?
導致集合中存儲的元素缺乏多樣性
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class GenericTest {
public static void main(String[] args) {
//使用泛型List之后,表示List集合中只允許存儲Animals的類型數據
List myList = new ArrayList();
Cat c = new Cat();
Bird b = new Bird();
myList.add(c);
myList.add(b);
//這個表示迭代器獲取的是Animals類型
Iterator it = myList.iterator();
while (it.hasNext()){
//調用Animals類型的move方法不需要轉換了
//Animals a = it.next();
//a.move();
//調用子類新的特有的方法時還是需要向下轉換類型的
Animals a = it.next();
if (a instanceof Cat){
Cat cat = (Cat) a;
cat.doSomething();
}
if (a instanceof Bird){
Bird bird = (Bird) a;
bird.fly();
}
}
}
}
class Animals{
public void move(){
System.out.println("動物在移動");
}
}
class Cat extends Animals{
public void doSomething(){
System.out.println("貓捉老鼠");
}
}
class Bird extends Animals{
public void fly(){
System.out.println("鳥兒在飛");
}
}
泛型的自動類型推斷機制(又稱鉆石表達式)
ublic class GenericTest {
public static void main(String[] args) {
//ArrayList<>(),<>里的類型會自動推斷,這里自動推斷為Animals
List myList = new ArrayList<>();
myList.add(new Animals());
myList.add(new Cat());
自定義泛型
public class GenericTest02 {
public static void main(String[] args) {
MyIterator m1 = new MyIterator<>();
String s1 = m1.get();
MyIterator m2 = new MyIterator<>();
Animals animals = m2.get();
System.out.println(animals);
}
}
//自定義泛型時,<>里的標識符可以隨便寫,一般寫T 或 E
class MyIterator{
public T get(){
return null;
}
}
增強for(foreach)
//語法規則
for(元素類型 變量名 : 數組或集合){
System.out.println(變量名);
}
標簽:Animals,myList,Cat,new,泛型,java,機制,public
來源: https://blog.csdn.net/qq_43652195/article/details/112131746
總結
以上是生活随笔為你收集整理的java泛型机制的好处_java 泛型机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 存储过程月单拆天单_为部门整
- 下一篇: 联系人排序java代码_Android仿