缺少 Javassist 依赖。javaparser 依赖包有三个,在引入 javaparser 包的同时,需要将这三个依赖包同时引入,在 Maven 仓库搜索 Javaparser 可见。
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.30.2-GA</version>
</dependency>
Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.String javassist.bytecode.LocalVariableAttribute.variableNameByIndex(int)'
at com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.getVariableName(JavassistUtils.java:270)
at com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.extractParameterName(JavassistUtils.java:262)
at com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodLikeDeclarationAdapter.getParam(JavassistMethodLikeDeclarationAdapter.java:73)
at com.github.javaparser.symbolsolver.javassistmodel.JavassistMethodDeclaration.getParam(JavassistMethodDeclaration.java:106)
at com.github.javaparser.resolution.declarations.ResolvedMethodLikeDeclaration.getSignature(ResolvedMethodLikeDeclaration.java:70)
at com.github.javaparser.resolution.declarations.ResolvedMethodLikeDeclaration.getQualifiedSignature(ResolvedMethodLikeDeclaration.java:81)
at com.github.javaparser.resolution.logic.MethodResolutionLogic.lambda$distinctByKey$1(MethodResolutionLogic.java:600)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at com.github.javaparser.resolution.logic.MethodResolutionLogic.findMostApplicable(MethodResolutionLogic.java:632)
at com.github.javaparser.resolution.logic.MethodResolutionLogic.findMostApplicable(MethodResolutionLogic.java:612)
at com.github.javaparser.symbolsolver.javassistmodel.JavassistUtils.solveMethod(JavassistUtils.java:129)
at com.github.javaparser.symbolsolver.javassistmodel.JavassistClassDeclaration.solveMethod(JavassistClassDeclaration.java:194)
at com.github.javaparser.resolution.logic.MethodResolutionLogic.solveMethodInType(MethodResolutionLogic.java:909)
at com.github.javaparser.symbolsolver.javaparsermodel.contexts.MethodCallExprContext.solveMethod(MethodCallExprContext.java:164)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(JavaParserFacade.java:296)
at com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade.solve(JavaParserFacade.java:133)
at com.github.javaparser.symbolsolver.JavaSymbolSolver.resolveDeclaration(JavaSymbolSolver.java:190)
at com.github.javaparser.ast.expr.MethodCallExpr.resolve(MethodCallExpr.java:332)
at cn.xdf.legolas.parser.converter.filter.MethodCallFilter.isFilteredMethodCall(MethodCallFilter.java:41)
at cn.xdf.legolas.parser.ParserDemo.lambda$main$0(ParserDemo.java:88)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at cn.xdf.legolas.parser.ParserDemo.main(ParserDemo.java:87)