powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Разница между <T> и <?>
8 сообщений из 8, страница 1 из 1
Разница между <T> и <?>
    #39481086
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Объясните, пожалуйста, на примере ниже отличия при использовании <T> и <?>.

static void shapeDraw(List<? extends shapeClass> c){
c.forEach((o) -> {
o.printShapeName();
});
}

static <T extends shapeClass> void shapeDraw2(List<T> c){
c.forEach((o) -> {
o.printShapeName();
});
}

Когда нужно использовать <T>, а когда <?> ?
В чём принципиальные отличия?

Спасибо.
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39481126
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
static void addTo(List<? extends shapeClass> list, shapeClass shape){
    list.add(shape);
}

static <T extends shapeClass> void addTo(List<T> list, T shape){
    list.add(shape);
}


Ключевая разница в том что wildcard ? это любой тип, что накладывает ограничения на вызов параметризированых методов.
А generic Т - это конкретный тип, который компилятору будет известен во код, который этот метод вызывает. Компилятор знает что и в списке и в переменной у нас одинаковый тип и даёт вызвать метод add().
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39481180
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz, мой пример реализован и с <T> и с <?>. Результат одинаковый.

У вас есть пример, который хорошо показывает, где лучше применять <T>, а где с <?>?
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39481191
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasarгде лучше применять <T>, а где с <?>?
необходимость гибкого кода не так то просто обосновать и доказать.
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39481193
rfq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данной ситуации годятся оба варианта. А вот если бы вам надо было вернуть в качестве результата элемент списка, поданного параметром, то надо было бы обозначить тип возвращаемого значения, а это позволяет только вариант с Т.
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39481282
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MolasarBlazkowicz, мой пример реализован и с <T> и с <?>. Результат одинаковый.
Я за вас очень рад.
MolasarУ вас есть пример, который хорошо показывает, где лучше применять <T>, а где с <?>?
А я что вам привел???
Всегда используйте T. ? почти бесполезен.
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39481519
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Molasar Когда нужно использовать <T>, а когда <?> ?
В чём принципиальные отличия?
Спасибо.
Если есть желание разобраться, то можно почитать тут .
...
Рейтинг: 0 / 0
Разница между <T> и <?>
    #39482169
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Разница между <T> и <?>
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]