Почему динамический прокси JDK работает только с интерфейсами?

Класс JDK Proxy принимает интерфейсы только в фабричном методе newProxyInstance (), варианты использования ограничены.

Есть ли обходной путь или альтернативные реализации? Сценарии использования ограничены, если мне нужно извлечь методы в интерфейс, чтобы включить их для использования с прокси. Я хотел бы обернуть их, чтобы применить действия на основе аннотаций во время выполнения.

public static <T> T getProxy(T obj) {
   InvocationHandler ih = new InjectProxy( obj );
   ClassLoader classLoader = InjectProxy.class.getClassLoader();
   return (T) Proxy.newProxyInstance( classLoader, obj.getClass().getInterfaces(), ih );
                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
}
12
задан Josh Crozier 3 November 2013 в 16:32
поделиться