泛型的定義與使用(接口,類,方法)都有


泛型的定義與使用

目標:

  • 我們在集合中會大量使用到泛型,這里來完整地學習泛型知識。泛型,用來靈活地將數據類型應用到不同的類、方法、接口當中。將數據類型作為參數進行傳遞。

步驟:

  • 定義和使用含有泛型的類

  • 定義和使用含有泛型的方法

  • 定義和使用含有泛型的接口

講解:

定義和使用含有泛型的類

定義格式:

修飾符 class 類名<代表泛型的變量> {  }

例如,API中的ArrayList集合:

泛型在定義的時候不具體,使用的時候才變得具體。在使用的時候確定泛型的具體數據類型。

class ArrayList<E>{ 
   public boolean add(E e){ }

   public E get(int index){ }
  ....
}

使用泛型: 即什么時候確定泛型。

在創建對象的時候確定泛型

例如,ArrayList<String> list = new ArrayList<String>();

此時,變量E的值就是String類型,那么我們的類型就可以理解為:

class ArrayList<String>{ 
    public boolean add(String e){ }

    public String get(int index){ }
    ...
}

再例如,ArrayList<Integer> list = new ArrayList<Integer>();

此時,變量E的值就是Integer類型,那么我們的類型就可以理解為:

class ArrayList<Integer> { 
    public boolean add(Integer e) { }

    public Integer get(int index) { }
    ...
}

定義和使用含有泛型的方法【重點】

定義格式:

修飾符 <代表泛型的變量> 返回值類型 方法名(參數){  }

例如,

public class MyGenericMethod {  
   public <MVP> void show(MVP mvp) {
  System.out.println(mvp.getClass());
  }
   
   public <MVP> MVP show2(MVP mvp) {
  return mvp;
  }
}

調用方法時,確定泛型的類型

public class GenericMethodDemo {
   public static void main(String[] args) {
       // 創建對象
       MyGenericMethod mm = new MyGenericMethod();
       // 演示看方法提示
       mm.show("aaa");
       mm.show(123);
       mm.show(12.45);
  }
}

定義和使用含有泛型的接口

定義格式:

修飾符 interface接口名<代表泛型的變量> {  }

例如,

public interface MyGenericInterface<E>{
public abstract void add(E e);

public abstract E getE();  
}

使用格式:

1、定義類時確定泛型的類型

例如

public class MyImp1 implements MyGenericInterface<String> {
@Override
   public void add(String e) {
       // 省略...
  }

@Override
public String getE() {
return null;
}
}

此時,泛型E的值就是String類型。

2、始終不確定泛型的類型,直到創建對象時,確定泛型的類型

例如

public class MyImp2<E> implements MyGenericInterface<E> {
@Override
public void add(E e) {
      // 省略...
}

@Override
public E getE() {
return null;
}
}

確定泛型:

/*
* 使用
*/
public class GenericInterface {
   public static void main(String[] args) {
       MyImp2<String>  my = new MyImp2<String>();  
       my.add("aa");
  }
}

小結:泛型是一種未知的數據類型,定義在類上的泛型,使用類的時候會確定泛型的類型,定義在方法上的泛型,會在使用方法的時候確定泛型,定義在接口上的泛型,需要使用接口的時候確定泛型。

小結:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM