Обобщенные конструкторы

Конструкторы также могут быть обобщенными, даже если их классы таковыми не являются. Например, рассмотрим следующую короткую программу:

// Использование обобщенного конструктора.
class GenCons {
private double val;
GenCons(T arg) {
val = arg.doubleValue();
}
void showval() {
System.out.println("val: " + val);
}
class GenConsDemo {
public static void main(String args[]) {
GenCons test = new GenCons(100);
GenCons test2 = new GenCons(123.5F);
test.showval();
test2.showval();
}
}

Вывод этой программы:

val: 100.0
val: 123.5

Поскольку GenCons () специфицирует параметр обобщенного типа, который может быть подклассом Number, GenCons () можно вызывать с любым числовым типом, включая Integer, Float или Double. Таким образом, даже несмотря на то, что GenCons — необобщенный класс, его конструктор обобщен.