Зачем использовать вспомогательный метод захвата карт?

Ссылаясь на :Методы захвата с использованием подстановочных знаков

В нем говорится, чтобы создать вспомогательный метод для захвата группового символа.

public void foo(List<?> i) {
    fooHelper(i);
}        
private <T> void fooHelper(List<T> l) {
    l.set(0, l.get(0));
}

Простое использование этой функции, приведенной ниже, не приводит к ошибкам компиляции и, похоже, работает аналогично. Что я не понимаю: почему бы вам просто не использовать это и не использовать помощника?

public <T> void foo(List<T> l) {
    l.set(0, l.get(0));
}

Я думал, что этот вопрос действительно сводится к следующему: в чем разница между подстановочными знаками и генериками? Итак, я пошел к этому:разница между подстановочными знаками и генериками, Он говорит, чтобы использовать параметры типа:

1) Если вы хотите навязать какое-то отношение к различным типам аргументов метода, вы не можете сделать это с помощью подстановочных знаков, вы должны использовать параметры типа.

Но разве это не то, что на самом деле делает подстановочный знак с вспомогательной функцией? Разве это не навязывает отношение к различным типам аргументов метода с его установкой и получением неизвестных значений?

Мой вопрос: если вам нужно определить что-то, что требует отношения по различным типам аргументов метода, то зачем сначала использовать подстановочные знаки, а затем использовать для этого вспомогательную функцию?

Это похоже на хакерский способ использовать подстановочные знаки.

Ответы на вопрос(3)

Ваш ответ на вопрос