Ошибка компиляции при реализации простых универсальных методов в Java

#java #generics

#java #универсальные методы

Вопрос:

Получение ошибки компиляции при реализации универсальных методов в Java

Мой универсальный интерфейс :

 interface GenericInterface {
    <T> T genericMethod(T t);
}
  

Ниже приведена моя реализация, которая выдает ошибку:

 public class GenericImplementation implements GenericInterface {

    // Not working
    @Override
    public Double genericMethod(Double t) {
        System.out.println("Trying to implement generic method with return T and method args T as well ");
        return t*4.3;
    }

}
  

Любая помощь будет высоко оценена заранее, возможно, мне чего-то не хватает в реализации универсального класса.

Комментарии:

1. Ваш интерфейс не является универсальным. Только метод в нем является универсальным.

2. Кроме того, опубликуйте ошибку, которую выдает компилятор. Это ценная информация, необходимая для того, чтобы помочь вам.

Ответ №1:

Если вы хотите, чтобы ваша реализация была для определенного типа, переменная типа должна быть объявлена в классе / интерфейсе:

 interface GenericInterface<T> {
    T genericMethod(T t);
}
  

и реализовать как:

 public class GenericImplementation implements GenericInterface<Double> {
  

<T> T genericMethod(T t) это не означает, что реализация может быть для любого типа, это означает, что она должна быть для всех типов. Вы не можете ограничить его одним типом.

Комментарии:

1. Спасибо за ваш быстрый ответ и краткие сведения, это мне очень помогло.