Java Generics - определение типа
Вывод типа представляет возможность компилятора Java просматривать вызов метода и его соответствующее объявление для проверки и определения аргумента (ов) типа. Алгоритм вывода проверяет типы аргументов, и, если они доступны, возвращается назначенный тип. Алгоритмы вывода пытаются найти определенный тип, который может заполнить все параметры типа.
Компилятор выдает предупреждение о непроверенном преобразовании, если определение типа не используется.
Синтаксис
Box<Integer> integerBox = new Box<>();
где
Box - Box - это универсальный класс.
<> - Оператор "ромб" обозначает вывод типа.
Описание
С помощью оператора «ромб» компилятор определяет тип параметра. Этот оператор доступен начиная с версии Java SE 7.
пример
Создайте следующую программу Java, используя любой редактор по вашему выбору.
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;
}
}
Это даст следующий результат.
Вывод
Integer Value :10
String Value :Hello World