Страницы

Поиск по вопросам

среда, 22 января 2020 г.

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

#java #коллекции


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


Ответы

Ответ 1



Какое-либо универсальное хорошее решение Вы вряд ли найдете. На мой взгляд, самое некостыльное из костылей – .getClass().isInstance(...): List list = new ArrayList<>(); List unmodifiableList = Collections.unmodifiableList(list); boolean isUnmodifiable = Collections.unmodifiableList(list).getClass().isInstance(unmodifiableList); Еще варианты: Ловить UnsupportedOperationException при добавлении элемента. Но тогда, в случае изменяемой коллекции, после теста элемент нужно удалить. .getClass().getSimpleName().equals(...).

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

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