- Java泛型是什么?
- Java泛型环境设置
- 示例 - 通用类
- 示例 - 有界类型
- 示例 - 集合
- 示例 - 通配符
- 示例 - 类型擦除
- 泛型的限制
Java泛型多重边界
类型参数可以有多个边界。
语法
public static <T extends Number & Comparable<T>> T maximum(T x, T y, T z)
在上面代码中,
- maximum - 最大值是一种通用方法。
- T - 通用类型参数传递给泛型方法。 它可以采取任何对象。
描述
T是传递给泛型类的类型参数应该是Number
类的子类型,并且必须包含Comparable
接口。 如果一个类作为绑定传递,它应该在接口之前先传递,否则编译时会发生错误。
示例
使用您喜欢的编辑器创建以下java程序,并保存到文件:MultipleBounds.java 中,代码如下所示 -
package com.zyiz; public class MultipleBounds { public static void main(String[] args) { System.out.printf("Max of %d, %d and %d is %d\n\n", 30, 24, 15, maximum(30, 24, 15)); System.out.printf("Max of %.1f,%.1f and %.1f is %.1f\n\n", 16.6, 28.8, 17.7, maximum(16.6, 28.8, 17.7)); } public static <T extends Number & Comparable<T>> T maximum(T x, T y, T z) { T max = x; if (y.compareTo(max) > 0) { max = y; } if (z.compareTo(max) > 0) { max = z; } return max; } // Compiler throws error in case of below declaration /* * public static <T extends Comparable<T> & Number> T maximum1(T x, T y, T * z) { T max = x; if(y.compareTo(max) > 0) { max = y; } * * if(z.compareTo(max) > 0) { max = z; } return max; } */ }
执行上面代码,得到以下结果 -
Max of 30, 24 and 15 is 30 Max of 16.6,28.8 and 17.7 is 28.8
上一篇:Java泛型有界类型参数
下一篇:Java泛型列表(List)
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王