Collections.unmodifiable* как определить?

361
28 декабря 2016, 03:15

Известно, что есть класс java.util.Collections в котором есть методы вида unmodifiable* возвращающие неизменяемые коллекции. Теперь вопрос, как определить, что коллекция является неизменяемой?

Answer 1

Какое-либо универсальное хорошее решение Вы вряд ли найдете.

На мой взгляд, самое некостыльное из костылей – .getClass().isInstance(...):

List<String> list = new ArrayList<>();
List<String> unmodifiableList = Collections.unmodifiableList(list);
boolean isUnmodifiable = Collections.unmodifiableList(list).getClass().isInstance(unmodifiableList);

Еще варианты:

  1. Ловить UnsupportedOperationException при добавлении элемента. Но тогда, в случае изменяемой коллекции, после теста элемент нужно удалить.
  2. .getClass().getSimpleName().equals(...).
READ ALSO
Как наложить картинку на блок?

Как наложить картинку на блок?

У меня есть блок и есть картинкаКак наложить одно на другое?

539
Проблемы с подключенным шрифтом

Проблемы с подключенным шрифтом

При подключении шрифта из google fonts, начинают смещаться соседние элементы от элементов с установленным шрифтомЧто за косяки? первую проблему...

331
Выравнивание блоков html

Выравнивание блоков html

В общем, стоит задача сделать галерею для портфолио, блоки располагаются ровно один под одним

408