- Java泛型教程
- Java泛型 - 首页
- Java泛型 - 概述
- Java泛型 - 环境设置
- 示例 - 泛型类
- Java泛型 - 泛型类
- 类型参数命名约定
- Java泛型 - 类型推断
- Java泛型 - 泛型方法
- Java泛型 - 多类型
- Java泛型 - 参数化类型
- Java泛型 - 原始类型
- 示例 - 有界类型
- 有界类型参数
- Java泛型 - 多重边界
- 示例 - 集合
- Java泛型 - 泛型列表
- Java泛型 - 泛型集合
- Java泛型 - 泛型映射
- 示例 - 通配符
- 上界通配符
- 泛型 - 无界通配符
- 下界通配符
- 泛型 - 通配符指南
- 类型擦除
- Java泛型 - 类型擦除
- Java泛型 - 有界类型擦除
- 无界类型擦除
- Java泛型 - 方法擦除
- 泛型的限制
- Java泛型 - 没有原始类型
- Java泛型 - 没有实例
- Java泛型 - 没有静态字段
- Java泛型 - 没有强制类型转换
- Java泛型 - 没有instanceOf
- Java泛型 - 没有数组
- Java泛型 - 没有异常
- Java泛型 - 没有重载
- Java泛型有用资源
- Java泛型 - 快速指南
- Java泛型 - 有用资源
- Java泛型 - 讨论
Java泛型 - 多重边界
类型参数可以有多个边界。
语法
public static <T extends Number & Comparable<T>> T maximum(T x, T y, T z)
其中
maximum − maximum是一个泛型方法。
T − 传递给泛型方法的泛型类型参数。它可以接受任何对象。
描述
T是传递给泛型类Box的类型参数,它应该是Number类的子类型并且必须实现Comparable接口。如果传递类作为边界,则应该在接口之前传递,否则会发生编译时错误。
示例
使用您选择的任何编辑器创建以下Java程序。
package com.tutorialspoint; public class GenericsTester { public static void main(String[] args) { System.out.printf("Max of %d, %d and %d is %d\n\n", 3, 4, 5, maximum( 3, 4, 5 )); System.out.printf("Max of %.1f,%.1f and %.1f is %.1f\n\n", 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.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 3, 4 and 5 is 5 Max of 6.6,8.8 and 7.7 is 8.8
广告