1.在做手动实现aop编程练习的时候遇到了这个问题,从错误信息可以看出,这是因为实现了一个类,众所周知类用来继承,接口用来实现。
可以看到,Eclipse在Workspace中发现了3个这样的类,而且包名类名都完全一样。可以看到,在spring的3.1.1版本中,这个叫ClassVisitor的类其实是一个接口,这个接口被放在spring-asm模块中。而在3.2.5,这个ClassVisitor就变成了一个抽象类。
解决方案
移除springframework-core的jar包。
注意:
-
在添加jar包的时候,用到的包才导入,没用到包的声明要及时删掉。
-
在整合多个jar包的时候,要注意依赖包的版本,因为有些类(可能包含有的字段)在不同的版本中声明可能会不同,错误的类或字段声明将导致IncompatibleClassChangeError。