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