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