#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. Спасибо за ваш быстрый ответ и краткие сведения, это мне очень помогло.