Этот вид динамического разрешения метода / атрибута, который распространен в динамически типизированных языках, таких как PHP, Python и Ruby, не поддерживается напрямую в языке Java.
Эффект можно аппроксимировать, используя Динамические прокси , для которого требуется интерфейс, для которого реализация будет динамически разрешаться. Сторонние библиотеки, такие как CGLIB , позволяют выполнять аналогичные действия с обычными классами Java.
Этот основанный на API специальный случайный перехват вызова метода не так удобен, как прямая, всегда поддерживаемая поддержка, которую вы можете получить с __call
в PHP или эквивалентными функциями в других динамически типизированных языках (таких как __getattr__
в Python) , Эта разница обусловлена принципиально разными способами обработки методов в двух типах языков.