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