上面我手动实现Proxy代理对象,但是却报错
查阅资料后发现,根本原因在于第二个参数,用法错误
Class.getInterfaces() 主要作用是获取某类所实现的接口所有接口,返回值Class<?>[] ,而我竟然是获取接口的接口,所以出错了
解决办法:
一.用该接口的实现类去 .Class.getInterfaces()
我这里没有去实现该接口,所以没有编写子类,因此用的第二种方法获取接口
二.new Class[]{代理接口.class},
例如:
new Class[]{UserOrderFeign.class}
正确操作
public static void main(String[] args) {UserOrderFeign o = (UserOrderFeign)Proxy.newProxyInstance(UserServiceController.class.getClassLoader(),//UserOrderFeign.class.getInterfaces(),new Class[]{UserOrderFeign.class},new InvocationHandler() {@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("111");return "hahaha";}});String s = o.testFeign();System.out.println(s);}