Collections.unmodifiableList(...) возвращает новый экземпляр статического внутреннего класса UnmodifiableList. Другие немодифицируемые классы коллекций построены таким же образом.
Были эти классы общедоступными, у одного было два преимущества:
- способность указывать более конкретное возвращаемое значение (например,
UnmodifiableList), поэтому пользователь API не захочет модифицировать эту коллекцию; - возможность проверки во время выполнения, если
List-instanceof UnmodifiableList.
Итак, были ли преимущества не, чтобы эти классы были общедоступны?
EDIT: не было представлено никаких убедительных аргументов, поэтому я выбираю наиболее подходящий ответ.