Дослідження технології обрання перевантажених методів Java з поліморфними аргументами
Анотація
Виконано дослідження реалізованої у Java технології поліморфізму – обрання на етапі компіляції перевантаженого методу у разі передачі йому як аргументів поліморфних об'єктів, тип яких стає відомим тільки на етапі виконання програми. Продемонстрована на прикладі можливість обрання компілятором та системою виконання Java непередбачуваного розробником метода та запропоноване рішення для детермінованого обрання шляхом приведення типу аргументу до необхідного (дійсного) типу. Наводиться рішення, що дозволяє завдяки використанню разом статичного обрання перевантаженого методу та динамічного обрання перевизначеного методу зменшити кількість перевантажених методів, які мають однакову реалізацію. Наголошується на можливому зниженні якості коду за рахунок великої кількості розгалужень при використанні пропонованого підходу у разі великої кількості перевантажених методів з різними реалізаціями. Як рішення для цього випадку пропонується використання засобів рефлексії Java для визначення дійсного типу аргументу та виклику необхідного перевантаженого метода. Для наведеного прикладу досліджена залежність часу виконання програми від кількості викликів перевантажених методів для рішення без використання рефлексії та з її використанням
Посилання
2. Рамеш Фадатаре. Перевантаження методів у Java з прикладами. [Електронний ресурс]
3. Джеймс Гослінг та ін. Специфікація мови Java®. Редакція Java SE 22. Розділ 15.12. Вирази виклику методів. [Електронний ресурс]
4. Java Class.cast до найбільш конкретного з перевантаженням методів. Сайт Stack Overflow. [Електронний ресурс]
5. Перспективна проекція за 5 хвилин: Частина 2 – математика! [Електронний ресурс]


