Итак, вам нужен экземпляр X, который имеет тот же интерфейс, что и класс, который вы получаете во время выполнения, но позволяет указать, как ведут себя определенные методы X?
Если у вас есть экземпляр A
во время выполнения вы можете использовать прокси-классы для создания объекта, который реализует все интерфейсы, которые реализует класс, включая X
, и который переопределяет некоторые методы X
, чтобы делать то, что вы хотите, ивсе остальные делегируются экземпляру.
Прокси-классы не очень эффективны с точки зрения эффективности, и тот тип динамизма, который они обеспечивают, обычно легче достичь с помощью более обычных средств, поэтому не злоупотребляйте ими, но там, где вам нужно немногогибкого клея на границе между двумя частями системы, они действительно могут помочь.
Также обратите внимание, что результирующий объект не является A, он просто реализует те же интерфейсы, что и A.