API коллекций Java: почему Unmodifiable [List | Set | Map] не являются общедоступными классами?

Collections.unmodifiableList (...) возвращает новый экземпляр статического внутреннего класса UnmodifiableList . Другие немодифицируемые классы коллекций конструируются таким же образом.

Если бы эти классы были общедоступными, у одного из них было два преимущества:

  • возможность указывать более конкретное возвращаемое значение (например, UnmodifiableList ), поэтому Пользователь API не придет в голову изменить эту коллекцию;
  • возможность проверять во время выполнения, является ли List instanceof UnmodifiableList .

Итак, были ли какие-то преимущества не , чтобы сделать эти классы общедоступными?

РЕДАКТИРОВАТЬ : Никаких убедительных аргументов представлено не было, поэтому я выбираю ответ, получивший наибольшее количество голосов.

20
задан java.is.for.desktop 28 November 2010 в 23:18
поделиться