Я бачив дискусію в цьому питанні щодо того, як клас, який реалізується з інтерфейсу, буде екземпляром. У моєму випадку я пишу дуже маленьку програму на Java, яка використовує екземпляр TreeMap
, і, на думку кожного, вона має бути створена таким чином:
Map<X> map = new TreeMap<X>();
У своїй програмі я викликаю функцію map.pollFirstEntry()
, яка не задекларована в Map
інтерфейсі (та ще пару присутніх в Map
інтерфейсі). Мені вдалося це зробити, перейшовши туди, TreeMap<X>
де я називаю такий метод, як:
someEntry = ((TreeMap<X>) map).pollFirstEntry();
Я розумію переваги вказівок ініціалізації, як описано вище для великих програм, однак для дуже невеликої програми, де цей об’єкт не передавався б іншим методам, я вважаю це зайвим. Тим не менш, я пишу цей зразок коду як частина заявки на роботу, і я не хочу, щоб мій код виглядав погано і не було захаращено. Що було б найелегантніше рішення?
EDIT: Я хотів би зазначити, що мене більше цікавить широка хороша практика кодування замість застосування конкретної функції TreeMap
. Як уже було вказано на деякі відповіді (і я зазначив, що відповів першим, хто це зробив), слід використовувати більш високий рівень абстракції, не втрачаючи функціональності.