Java泛型知识

来源:互联网 发布:2017年淘宝店有多少家 编辑:程序博客网 时间:2024/06/18 07:24

Java泛型知识一

​ 泛型可以对已有的数据结构定义成多种类型,比如String类型,Integer类型等等。

泛型类

​ 泛型类是一个或多个类型参数的类。下面是一个用来存储键值对的简单泛型类。

public class Entry<K,V>{  private K key;  private V value;  public Entry(K key,V value){    this.key = key;    this.value = value;  }  public K getKey(){    return key;  }  public V getValue(){    return value;  }}

泛型方法

​ 如同泛型类是带类型参数的类一样,泛型方法是带类型参数的方法。可以是泛型类或者普通类的方法。下面是一个普通类的泛型方法的例子:

public class Arrays{  public static <T> void swap(T[] array,int i,int j){    T temp = array[i];    array[i] = array[j];    array[j] = temp;  }}

​ 当声明一个泛型方法时,类型参数要放在修饰符之后(public或者static等),返回类型之前(void或者int等)。

类型限定

​ 有时,泛型类或方法的类型参数需要满足某些要求。你可以对类型作出限定,要求该类型继承某些类或者实现某些接口。

​ 例如:假设你有一个类对象的ArrayList,该类实现了AutoCloseable接口,你想把它们全都关闭。

public static <T extends AutoCloseable> void closeAll(ArrayList<T> elems) throws Exception{  for (T elem:elems){    elem.close();  }}

​ 类型限定“extends AutoCloseable”确保元素类型是AutoCloseable的子类型。因此,调用elem.close()是有效的。

原创粉丝点击