代码懒得整理了,转一篇
https://www.cnblogs.com/ygj0930/p/6542259.html
--------------------------------------------------------------------------------------------------
在运行测试类的时候出现了异常
Exception in thread "main" java.lang.NoClassDefFoundError: org/objectweb/asm/Type
at net.sf.cglib.core.TypeUtils.parseType(TypeUtils.java:184)
at net.sf.cglib.core.KeyFactory.<clinit>(KeyFactory.java:66)
at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
at factory.MyCglibFactory.myCglibCreator(MyCglibFactory.java:20)
at test.MyTest2.main(MyTest2.java:8)
Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
经过查询之后发现除了要导入cglib的jar包之外还要导入asm的jar包,导入asm的jar包之后即可解决该问题。
--------------------- -------------------------------------------------------------------------------------
cglib版本为3.0或3.1,org.objectweb.asm版本为3.1.0时
版本冲突,报错java.lang.IncompatibleClassChangeError: class net.sf.cglib.core.DebuggingClassWriter has interface org.objectweb.asm.ClassVisitor as super class
使用cglib 2.2 可解决此问题,该版本中的DebuggingClassWriter的父类为ClassWriter