Я реализую класс для хранения объектов, которым можно присвоить значение double . По этой причине я создал интерфейс HasDoubleValue , который содержит один метод:
public interface HasDoubleValue{
public double doubleValue();
}
Мой основной класс определяется так:
Data <O extends HasDoubleValue> {...}
Теперь, когда я пытаюсь инициализировать этот класс для хранения целых чисел, я получаю сообщение об ошибке «Аргумент типа Integer находится за пределами переменной типа O», хотя Integer реализует метод doubleValue () с помощью по умолчанию.
Я полагаю, что это происходит потому, что Integer явно не реализует мой интерфейс HasDoubleValue, хотя у него есть метод, который я ищу. Это правильно? Каким будет естественный обходной путь?