Java Generics - Kiểu suy luận

Suy luận kiểu thể hiện khả năng của trình biên dịch Java xem xét một lệnh gọi phương thức và khai báo tương ứng của nó để kiểm tra và xác định (các) đối số kiểu. Thuật toán suy luận kiểm tra kiểu của các đối số và nếu có, kiểu được gán sẽ được trả về. Các thuật toán suy luận cố gắng tìm một kiểu cụ thể có thể lấp đầy tất cả các tham số kiểu.

Trình biên dịch tạo ra cảnh báo chuyển đổi không được kiểm tra trong trường hợp loại suy luận không được sử dụng.

Cú pháp

Box<Integer> integerBox = new Box<>();

Ở đâu

  • Box - Box là một lớp chung.

  • <> - Toán tử kim cương biểu thị kiểu suy luận.

Sự miêu tả

Sử dụng toán tử kim cương, trình biên dịch xác định kiểu của tham số. Toán tử này có sẵn từ phiên bản Java SE 7 trở đi.

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.

GenericsTester.java

package com.tutorialspoint;

public class GenericsTester {
   public static void main(String[] args) {
      //type inference   
      Box<Integer> integerBox = new Box<>();
      //unchecked conversion warning
      Box<String> stringBox = new Box<String>();

      integerBox.add(new Integer(10));
      stringBox.add(new String("Hello World"));

      System.out.printf("Integer Value :%d\n", integerBox.get());
      System.out.printf("String Value :%s\n", stringBox.get());
   }
}

class Box<T> {
   private T t;

   public void add(T t) {
      this.t = t;
   }

   public T get() {
      return t;
   }   
}

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

Đầu ra

Integer Value :10
String Value :Hello World