Большинство коллекций определяют contains(Object), где аргумент имеет тип Object, а не общий тип коллекции. введите T.
Как реализуется такой метод? Вы не можете использовать компаратор для аргумента, поскольку не знаете тип аргумента. Вы даже не можете проверить, разрешено ли приведение.
Я могу представить только два решения, оба плохие:
- Набор должен быть создан с помощью объекта Class, чтобы я мог проверить, можно ли привести аргумент. Но очевидно, что структура коллекций Java не требует этого, поэтому должен быть способ обойти это.
- Просто выполните приведение и перехватите исключение ClassCastException, которое может возникнуть. Это кажется неприятным.
Подробнее здесь: https://stackoverflow.com/questions/790 ... known-type
Мобильная версия