Какая разница между следующими определениями типов
<E extends Number>
и
<? extends Number>
Cheers,
Дон
Ответ 1
Эта версия:
<? extends Number>
может отображаться в не-generic method/type, и это в основном означает "Мне все равно, что это за тип, если он происходит от Number. Я не буду использовать этот тип, Мне просто нужно, чтобы это было уместно".
Эта версия:
<E extends Number>
требует, чтобы E был параметром типа. Это позволяет вам делать больше (например, позже создавать ArrayList<E>), но дополнительный параметр типа может усложнить ситуацию, когда вам это действительно не нужно.