8000 GenerateFileKit.generate调用时,ProtobufClass修饰类存在内部类时,javaClass名称生成规则冲突导致空指针 · Issue #466 · iohao/ioGame · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
GenerateFileKit.generate调用时,ProtobufClass修饰类存在内部类时,javaClass名称生成规则冲突导致空指针 #466
Open
@modty

Description

@modty

你的问题

调用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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0