# V6066. Passing objects of incompatible types to the method of collection.

Анализатор обнаружил потенциальную ошибку, связанную с вызовом метода коллекции, в который передали объект, тип которого не совпадает с типом коллекции. Анализатор выдает предупреждения на такие функции как remove, contains, removeAll, containsAll, retainAll и т.д.

Давайте рассмотрим пример с ошибочным использованием метода 'remove':

    List<String> list = ...;
    Integer index = ...;
    ...
    list.remove(index);

Здесь хотели удалить объект из списка по индексу, но не учли, что индекс не примитивный целый тип, а объект типа 'Integer'. Будет использоваться перегруженный метод 'remove', который ожидает на вход объект, а не 'int'. Объекты 'Integer' и 'String' несовместимы, и поэтому использование метода будет ошибочным.

Если нет возможности изменить тип переменной "index", то можно исправить код следующим образом:

    List<String> list = ...;
    Integer index = ...;
    ...
    list.remove(index.intValue());

Данная диагностика классифицируется как:

CERT-EXP04-J

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V6066.