Есть ли ситуации, когда лучше использовать не общую коллекцию в Java, а не общую (или они все еще существуют только для обратной совместимости)?
Неоригинальные коллекции в Java - любые применения?
Ответ 1
Абсолютно нет. В случае, когда вы не можете вывести типы во время объявления, используйте ?
как спецификатор типа - для чего он предназначен. (Существуют случаи, когда использование ?
ограничило бы вас вызовом определенных методов, таких как List.add()
. В таких случаях вы можете найти более ограничительный спецификатор типа, обычно работает Object
).
Неоригинальное использование по-прежнему поддерживается, потому что технически нет ничего плохого в том, что он не использует его; вы просто закончите писать больше инструкций о литье и ставите себя в более высокий риск для ClassCastException
, но это технически законно в отношении спецификации.
В целом, нет случая (о котором я могу думать), где избегание дженериков "лучше", чем их использование. В худшем случае (когда вы должны использовать ?
или Object
во время объявления), оба подхода равны.