Java进阶知识,轻松理解Java泛型( 二 )


className variable<dataType1, dataType2> = new className();泛型的优点:使用泛型类时指明了数据类型 , 赋给其他类型的值会抛出异常 , 既不需要向下转型 , 也没有潜在的风险 。
除了定义泛型类 , 还可以定义泛型接口和泛型方法 , 使用泛型方法时不必指明参数类型 , 编译器会根据传递的参数自动查找出具体的类型 。
限制泛型的可用类型
通过 extends 关键字可以限制泛型的类型
public <T extends Number> T getMax(T array[]){T max = null;for(T element : array){max = element.doubleValue() > max.doubleValue() ? element : max;}return max;}<T extends Number> 表示 T 只接受 Number 及其子类 , 传入其他类型的数据会报错 。这里的限定使用关键字 extends , 后面可以是类也可以是接口 。但这里的 extends 已经不是继承的含义了 , 应该理解为 T 是继承自 Number 类的类型 。




推荐阅读