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
  • asp之家 软件编程 m.aspxhome.com