У меня простой общий класс, как показано ниже:Инстанцирование вспомогательный класс универсального типа класса
public class Test<T extends Number> {
public void doSomething() {
Test t = new Test();
t.getNumber();
}
public T getNumber() {
T d = new Double("1.5"); // I get an compiler error here!
return d;
}
}
Метод getNumber возвращает T (который расширяет Number) и в его реализации инстанцирует в два раза. Компилятор бросает вверх ошибку на линии:
T d = new Double("1.5"); // I get an compiler error here!
ошибка:
Incompatible types:
[ERROR] found : java.lang.Double
[ERROR] required: T
Поскольку T расширяет Number, я ожидал бы эту работу. Я что-то упускаю?
Я понимаю, что вы имеете в виду. Хотя, это немного запутанно. Благодаря! –