时间:2021-05-19
有时,类或方法需要对类型变量加以约束。下面是一个典型的例子,我们要寻找数组中的最小元素:
public class ArrayAlg { public static <T extends Comparable> T min(T[] array){ if (array == null || array.length == 0){ return null; } T smallest = array[0]; for (int i=0;i<array.length;i++){ if (smallest.compareTo(array[i])>0){ smallest = array[i]; } } return smallest; }}上述代码中的限制了用于实例化类型参数T的类型,必须是实现Comparable接口(只含有compareTo方法的标准接口)的类。如果没有对T进行限制,那么无法确保实例化T的类型具有compareTo方法。
note
一个类型变量可以有多个限定,例如:
<T extends Comparable & Serializable , U extends Comparable>
限定类型使用 “&”分隔,而“,”用于分隔类型参数。
在Java中,一个类可以实现多个接口,但只能有一个父类,所以在类型参数的限定中,可以有多个接口,但只能有一个类。
<T extends 接口1 & 接口2 & ... & 接口n & 类型1>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
where子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如,可以声明一个泛型类MyGenericClass,这样,类型参
Java中泛型使用泛型作用:泛型:集合类添加对象不用强转反射机制:将泛型固定的类的所有方法和成员全部显示出来核心代码:ArrayListff=newArrayL
一、泛型概述1、背景在Java中增加泛型之前,泛型程序设计使用继承来实现的。坏处:需要进行强制类型转换可向集合中添加任意类型的对象,存在风险2、泛型的使用Lis
前言Kotlin泛型的基本语法类似于Java,不过出于型变安全,不支持Java中的,通配符型变约束,而是采用类似C#的in,out用于支持协变和逆变,这同时避免
简介Java在1.5引入了泛型机制,泛型本质是参数化类型,也就是说变量的类型是一个参数,在使用时再指定为具体类型。泛型可以用于类、接口、方法,通过使用泛型可以使