Java Generics - Nhiều Giới hạn

Một tham số kiểu có thể có nhiều giới hạn.

Cú pháp

public static <T extends Number & Comparable<T>> T maximum(T x, T y, T z)

Ở đâu

  • maximum - tối đa là một phương pháp chung.

  • T- Tham số kiểu chung được truyền cho phương thức chung. Nó có thể lấy bất kỳ Đối tượng nào.

Sự miêu tả

T là một tham số kiểu được truyền cho Box lớp chung và phải là kiểu con của lớp Số và phải tích hợp giao diện có thể so sánh được. Trong trường hợp một lớp được chuyển dưới dạng ràng buộc, nó phải được chuyển trước khi giao diện nếu không sẽ xảy ra lỗi thời gian biên dịch.

Thí dụ

Tạo chương trình java sau bằng bất kỳ trình soạn thảo nào bạn chọn.

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;   
   }*/
}

Điều này sẽ tạo ra kết quả sau:

Đầu ra

Max of 3, 4 and 5 is 5

Max of 6.6,8.8 and 7.7 is 8.8