4
Чому колекції Java реалізовувались за допомогою «необов’язкових методів» в інтерфейсі?
Під час моєї першої реалізації, що розширює рамки колекції Java, я був дуже здивований, побачивши, що інтерфейс колекції містить методи, оголошені як необов'язкові. Очікується, що реалізатор викине UnsupportedOperationExceptions, якщо він не підтримується. Це відразу вразило мене як поганий вибір дизайну API. Прочитавши велику частину чудової книги "Ефективна Java" Джошуа Блоха …