Open
Description
你的问题
调用GenerateFileKit.generate空指针报错
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "com.thoughtworks.qdox.model.JavaClass.getComment()" because "javaClass" is null
at com.iohao.game.widget.light.protobuf.ProtoJavaAnalyse.lambda$convert$3(ProtoJavaAnalyse.java:123)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at com.iohao.game.widget.light.protobuf.ProtoJavaAnalyse.convert(ProtoJavaAnalyse.java:136)
at com.iohao.game.widget.light.protobuf.ProtoJavaAnalyse.analyse(ProtoJavaAnalyse.java:93)
at com.iohao.game.widget.light.protobuf.ProtoJavaAnalyse.analyse(ProtoJavaAnalyse.java:57)
at com.iohao.game.widget.light.protobuf.ProtoGenerateFile.lambda$generate$0(ProtoGenerateFile.java:86)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1715)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
at java.base/java.util.concurrent.ForkJoinTask.doExec$$$capture(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:667)
at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
at com.iohao.game.widget.light.protobuf.ProtoGenerateFile.generate(ProtoGenerateFile.java:84)
at com.iohao.game.widget.light.protobuf.kit.GenerateFileKit.generate(GenerateFileKit.java:60)
at com.iohao.game.widget.light.protobuf.kit.GenerateFileKit.generate(GenerateFileKit.java:78)
at online.zuowang.cloud.TestGenerate.generateProtoFile(TestGenerate.java:56)
at online.zuowang.cloud.TestGenerate.main(TestGenerate.java:42)
原因:
1、ProtobufClass修饰类存在内部类。
2、扫描出的内部类连接符为“.”
3、clazz获取的内部类连接符为“@”
具体场景:
clazz.toString()为class g.cloud.characterxiulian.proto.GetCharacterXiuLianLogListRespData$XiuLianLogListItem
扫描出类路径:class g.cloud.characterxiulian.proto.GetCharacterXiuLianLogListRespData.XiuLianLogListItem
版本
- ioGame version: 21.24