Структура обобщенного метода, принимающего типы разных классов
Интересует способ реализации обобщенного метода, который сможет принимать одно из значений:
1) Либо объекты типа T, ограниченные сверху классом Number:
T extends Number
2) Либо объекты типа String
Например:
public void getValue(List<T extends Number>, List<String>){
// тут выполняется, например, сортировка полученного List'a
}
Что я предпринимал:
- Прочитал главу
Обобщениякниги Java - Полное руководство, Герберт Шилдт - Гуглил
Посмотрел здесь предлагаемые топики при написании заголовка к данному топику
public static void append(List list) { T elem = new T(); list.add(elem); }
Что я нашёл:
- То, что в обобщенном методе можно реализовать способ, когда в качестве аргументов метода может быть два значения (в данном случае классы-наследники от
NumberиString), но чтобы метод смог принимать илиT extends NumberилиString- я не смог найти. Поэтому интересуюсь.
Ответы (1 шт):
Автор решения: Nick Volynkin
→ Ссылка
Я почти забыл Java, могу ошибиться. Кажется, вам нужны два метода:
public void getValue(List<T extends Number>){
//
}
public void getValue(List<T extends String>){
//
}
Ну и если метод называется get, то он не void, а например T. Тогда хоть дженерики обретают смысл.
public Т getValue(List<T extends Number>){
//
}
public Т getValue(List<T extends String>){
//
}