вторник, 9 августа 2011 г.

UnsupportedOperationException

Столкнулся с UnsupportedOperationException при попытке вызова метода add() у объекта через ссылку типа List. Проблема оказалась в следующем: один из вызываемых методов присваивал этой переменной значение Collections.EMPTY_LIST, который является Immutable (т.е. неизменяемым) объектом, соответственно при попытке вызвать add() выбрасывается UnsupportedOperationException.
Очень кратко это выглядит так:

  1. List<Object> list = Collections.emptyList();
  2. list.add(new Object()); // здесь будет выброшено UnsupportedOperationException


P.S.  Collections.emptyList() и Collections.EMPTY_LIST отличаются только тем, что метод emptyList() является type-safety.

Комментариев нет:

Отправить комментарий