Java泛型变量如何添加约束
作者:Hello_xzy_World 时间:2021-06-02 23:12:06
有时,类或方法需要对类型变量加以约束。下面是一个典型的例子,我们要寻找数组中的最小元素:
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>
来源:https://www.cnblogs.com/KenBaiCaiDeMiao/p/12638644.html
标签:Java,泛型,变量
0
投稿
猜你喜欢
Spring深入刨析声明式事务注解的源码
2023-10-23 09:41:48
InterProcessMutex实现zookeeper分布式锁原理
2023-08-11 05:46:43
SpringCloud微服务架构实战之微服务治理功能的实现
2023-07-20 09:06:38
C#中Span相关的性能优化建议
2021-07-05 15:42:26
Spring代理对象导致的获取不到原生对象注解的解决
2021-12-05 11:44:19
JAVA设计模式之备忘录模式原理与用法详解
2023-08-24 13:23:37
springboot配置文件的加载顺序解析
2022-11-09 01:30:01
SpringBoot利用@Retryable注解实现接口重试
2023-03-08 19:54:42
java 多态与抽象类详解总结
2022-04-19 10:59:18
详解Spring boot使用Redis集群替换mybatis二级缓存
2023-03-09 17:17:38
C#仿QQ聊天窗口
2022-09-30 09:12:39
windows下java -jar 后台运行以及杀死后台进程的操作
2022-02-09 17:28:13
使用Java的Lucene搜索工具对检索结果进行分组和分页
2022-07-27 05:21:17
详解jvm对象的创建和分配
2022-01-27 13:39:41
基于idea 的 Java中的get/set方法之优雅的写法
2023-11-26 20:22:50
SpringBoot自动装配之Condition深入讲解
2023-12-03 02:20:29
java读取其他服务接口返回的json数据示例代码
2023-11-10 14:05:29
java信号量控制线程打印顺序的示例分享
2023-05-09 12:27:38
jackson反序列化时如何忽略不需要的字段
2021-09-26 20:36:20
使用java为pdf添加书签的方法(pdf书签制作)
2022-03-07 14:59:11