Учебники

Java Generics — вывод типа

Вывод типа представляет способность компилятора Java просматривать вызов метода и его соответствующее объявление для проверки и определения аргумента (ов) типа. Алгоритм вывода проверяет типы аргументов и, если доступно, возвращается назначенный тип. Алгоритмы вывода пытаются найти определенный тип, который может полностью заполнить все параметры типа.

Компилятор генерирует непроверенное предупреждение о преобразовании в случае, если вывод типа не используется.

Синтаксис

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

куда

  • Box — Box — универсальный класс.

  • <> — Оператор diamond обозначает вывод типа.

Box — Box — универсальный класс.

<> — Оператор diamond обозначает вывод типа.

Описание

Используя оператор diamond, компилятор определяет тип параметра. Этот оператор доступен начиная с версии Java SE 7 и далее.

пример

Создайте следующую Java-программу, используя любой редактор по вашему выбору.

GenericsTester.java

Live Demo

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

Это даст следующий результат.