INVOKESPECIAL/STATIC on interfaces require ASM 5
- 项目启动报错
- 解决方法
项目启动报错
错误信息如下:
Caused by: java.lang.IllegalArgumentException: INVOKESPECIAL/STATIC on interfaces require ASM 5
at org.springframework.asm.MethodVisitor.visitMethodInsn(Unknown Source)
at org.springframework.asm.ClassReader.a(Unknown Source)
at org.springframework.asm.ClassReader.b(Unknown Source)
at org.springframework.asm.ClassReader.accept(Unknown Source)
at org.springframework.asm.ClassReader.accept(Unknown Source)
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:64)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:266)
... 26 common frames omitted
百度都是什么低版本不支持这种,也没说咋解决,以及什么情况下能触发
根据其他人描述,是spring和lambda的冲突,那就在代码中寻找使用lambda的地方,然后挨个排查
最终锁定在这一行代码:
//collect是一个List
Collections.sort(collect,Comparator.comparing(User::getAge));
解决方法
使用别的排序方法对集合进行排序即可,不使用lambda自带的这个排序
估计每个人都不一样,建议是逐条备注起来,然后运行项目,精确到具体哪一行代码