Java 泛型接口

2018-02-20 00:35 更新

Java教程 - 如何使用Java泛型接口


在Java中,我們創(chuàng)建泛型接口。

語(yǔ)法

這是一個(gè)泛型接口的泛型語(yǔ)法:

interface interface-name<type-param-list> { // ...

type-param-list是逗號(hào)分隔的類(lèi)型參數(shù)列表。當(dāng)實(shí)現(xiàn)泛型接口時(shí),必須指定類(lèi)型參數(shù),如下所示:

class class-name<type-param-list> 
   implements interface-name<type-arg-list> {

注意

一般來(lái)說(shuō),如果一個(gè)類(lèi)實(shí)現(xiàn)了一個(gè)泛型接口,那么該類(lèi)也必須是泛型的。如果一個(gè)類(lèi)實(shí)現(xiàn)了一個(gè)特定類(lèi)型的泛型接口,如下所示:

class MyClass implements MinMax<Integer> { // OK

那么實(shí)現(xiàn)類(lèi)不需要是泛型的。

泛型接口類(lèi)似泛型類(lèi)。

例子

interface MinMax<T extends Comparable<T>> {
  T max();
}
class MyClass<T extends Comparable<T>> implements MinMax<T> {
  T[] vals;
  MyClass(T[] o) {
    vals = o;
  }
  public T max() {
    T v = vals[0];
    for (int i = 1; i < vals.length; i++) {
      if (vals[i].compareTo(v) > 0) {
        v = vals[i];
      }
    }
    return v;
  }
}

public class Main {
  public static void main(String args[]) {
    Integer inums[] = { 3, 6, 2, 8, 6 };
    Character chs[] = { "b", "r", "p", "w" };
    MyClass<Integer> a = new MyClass<Integer>(inums);
    MyClass<Character> b = new MyClass<Character>(chs);
    System.out.println(a.max());
    System.out.println(b.max());
  }
}

上面的代碼生成以下結(jié)果。



以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)