
- 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
廣告