情况是这样,为了统计接口回调时间及判断页面是否存活,是在接口调用之后,用动态代理实现一个页面的代理类,在代理类中判断页面是否有接口及存活再调用接口的回调方法。
结果发现,父类,即直接实现接口的类是正常没问题的,但当子类继承父类后再调用接口方法的话,回调就无法进行下去了,打了父类的断点也没用。
一开始是以为子类也一定要实现接口才行,这么一写的确是可以运行了,但自己写了个demo后,发现子类判断是否有实现接口,结果是true,是没问题的。
这样一来就不是继承的问题,而是动态代理的问题了,所以看了下动态代理的实现方法。
经过写个demo后发现,这个方法只会返回当前类实现的接口,不会返回父类所实现的接口。所以得到的结论就是,动态代理类返回的结果中,只实现了子类自己实现的接口,没有父类的接口,并且与父类没有关系,所以在最后判断代理类中是否实现接口时出错,代码无法进行下去。
关于子类,父类,接口实现和动态代理之混合运用的一个bug
最新推荐文章于 2022-09-29 23:31:19 发布