java.lang.reflect.Proxy的替代品,用于创建抽象类的代理(而不是接口)
根据文档: [ java.lang.reflect.]Proxy提供了用于创建动态代理类和实例的静态方法,它还是由这些方法创建的所有动态代理类的超类。 该newProxyMethod方法(负责生成动态代理)具有以下签名: public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException 不幸的是,这阻止了人们生成扩展特定抽象类的动态代理(而不是实现特定接口)。考虑到java.lang.reflect.Proxy“所有动态代理的超类”,这是有道理的,因此可以防止另一个类成为超类。 因此,是否有替代方法java.lang.reflect.Proxy可以生成从特定抽象类继承的动态代理,从而将对抽象方法的所有调用重定向到调用处理程序? 例如,假设我有一个抽象类Dog: public abstract class Dog { public void bark() { System.out.println("Woof!"); } public abstract void fetch(); } 有没有可以让我做以下事情的课程? Dog dog = SomeOtherProxy.newProxyInstance(classLoader, Dog.class, h); dog.fetch(); // Will be handled by the invocation handler …