Конструкторы также могут быть настраиваемыми, даже если их класс не является настраиваемым типом. Рассмотрим короткую программу, приведенную в листинге 3.9.
Листинг 3.9. Применение настраиваемого конструктора
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();
}
}
Далее приведен вывод программы из листинга 3.9:
val: 100.0
val: 123.5
Поскольку конструктор GenCons( ) задает параметр настраиваемого типа, который должен быть производным классом от класса Number, его можно вызвать c любым числовым типом, включая Integer, Float или Double.
Следовательно, хотя класс GenCons не является настраиваемым типом, его конструктор настраиваемый. |