У меня есть этот метод в моем интерфейсе:Generic типа в методе интерфейса Java
public String getValue();
Строка только для примера здесь, я не хочу, чтобы возвращать строку.
И я хочу поместить метод в классы, которые возвратят ints, chars или bools (в зависимости от класса). Например, у меня есть класс Animal, который реализует мой интерфейс и имеет этот метод. Я хочу, чтобы он возвращал int, когда этот метод вызывается у животного. У меня есть другой класс, у которого есть этот метод, и когда этот метод вызывается в Person, я хочу, чтобы он возвращал символ.
public class Animal implements myInterface {
@Override
public int getValue() {
return 5;
}
}
public class Person implements myInterface {
@Override
public char getValue() {
return 'c';
}
}
Я понимаю, что я должен делать это с помощью дженериков. Но как именно я это делаю?
Если я заменить строку в интерфейсе с родового типа, как:
public <T> T getValue();
то говорит, что я не могу бросить из Int (или полукокса) Т.
Что я должен делать? Благодарю.
Звучит как проблема X/Y. Что представляет собой ваш интерфейс? –
Я думаю, вы должны пересмотреть тот факт, что у вас есть несколько типов для представления «значения». Если все классы имеют «значение», ожидается, что они будут одного типа. В противном случае назовите переменную более подходящим образом и дайте ей свои собственные сеттеры/геттеры. – csmckelvey
Это не должен быть метод getValue, который является общим, но сам интерфейс. –