Java泛型知识

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()是有效的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值