Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin 批注处理异常:未能分析:java.lang.reflect.InvocationTargetException_Kotlin_Annotation Processing_Annotation Processor - Fatal编程技术网

Kotlin 批注处理异常:未能分析:java.lang.reflect.InvocationTargetException

Kotlin 批注处理异常:未能分析:java.lang.reflect.InvocationTargetException,kotlin,annotation-processing,annotation-processor,Kotlin,Annotation Processing,Annotation Processor,我正在编写自己的注释处理器,希望能够对函数的返回类型进行注释 下面是注释的代码: @Retention(AnnotationRetention.SOURCE) @Target(AnnotationTarget.FUNCTION) annotation class ReturnType(val type: KClass<*>) 当我试图编译代码时,出现以下异常: java.lang.IllegalStateException:未能分析: java.lang.reflect.Invoc

我正在编写自己的注释处理器,希望能够对函数的返回类型进行注释

下面是注释的代码:

@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.FUNCTION)
annotation class ReturnType(val type: KClass<*>)
当我试图编译代码时,出现以下异常:

java.lang.IllegalStateException:未能分析: java.lang.reflect.InvocationTargetException位于 org.jetbrains.kotlin.analyzer.AnalysisResult.throwiferor(AnalysisResult.kt:56) 在 org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:182) 在 org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:165) 在 org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:55) 在 org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:84) 在 org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:42) 位于org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:104) org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1558) 在jdk.internal.reflect.GeneratedMethodAccessor104.invoke(未知 来源)在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.base/java.lang.reflect.Method.invoke(Method.java:566) java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) 位于java.rmi/sun.rmi.transport.transport$1.run(transport.java:200) java.rmi/sun.rmi.transport.transport$1.run(transport.java:197)在 java.base/java.security.AccessController.doPrivileged(本机方法) 在 java.rmi/sun.rmi.transport.transport.serviceCall(transport.java:196) 在 java.rmi/sun.rmi.transport.tcp.tcpttransport.handleMessages(tcpttransport.java:562) 在 java.rmi/sun.rmi.transport.tcp.tcpttransport$ConnectionHandler.run0(tcpttransport.java:796) 在 java.rmi/sun.rmi.transport.tcp.tcpttransport$ConnectionHandler.lambda$run$0(tcpttransport.java:677) 位于java.base/java.security.AccessController.doPrivileged(本机 方法)在 java.rmi/sun.rmi.transport.tcp.tcpttransport$ConnectionHandler.run(tcpttransport.java:676) 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在java.base/java.lang.Thread.run(Thread.java:834)处,由以下原因引起: java.lang.reflect.InvocationTargetException位于 jdk.internal.reflect.GeneratedMethodAccessor122.invoke(未知源) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 位于java.base/java.lang.reflect.Method.invoke(Method.java:566) org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing(annotationProcessing.kt:76) 在 org.jetbrains.kotlin.kapt3.base.AnnotationProcessingKt.doAnnotationProcessing$default(annotationProcessing.kt:35) 在 org.jetbrains.kotlin.kapt3.AbstractKapt3Extension.runAnnotationProcessing(Kapt3Extension.kt:224) 在 org.jetbrains.kotlin.kapt3.abstractkapt3 extension.analysisCompleted(kapt3 extension.kt:187) 在 org.jetbrains.kotlin.kapt3.classPathBasedkapt3 extension.analysis已完成(kapt3 extension.kt:98) org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM$analyzeFilesWithJavaIntegration$2.invoke(TopDownAnalyzerFacadeForJVM.kt:97) 在 org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:107) 在 org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:82) 在 org.jetbrains.kotlin.cli.jvm.compiler.kotlindotjvmbytecodecompiler$analyze$1.invoke(kotlindotjvmbytecodecompiler.kt:557) 在 org.jetbrains.kotlin.cli.jvm.compiler.kotlindotjvmbytecodecompiler$analyze$1.invoke(kotlindotjvmbytecodecompiler.kt:82) 在 org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:107) 在 org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:548) 在 org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:177) ... 22多宗由以下原因引起: com.sun.tools.javac.processing.AnnotationProcessingError: javax.lang.model.type.MirroredTypeException:尝试访问类 类型镜像int的对象 jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:992) 在 jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverandrunpcs(JavacProcessingEnvironment.java:896) 在 jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1222) 在 jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1334) 在 jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1258) 在 jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1157) ... 38更多原因:javax.lang.model.type.MirroredTypeException: 尝试访问位于的TypeMirror int的类对象 jdk.compiler/com.sun.tools.javac.model.AnnotationProxyMaker$MirroredTypeExceptionProxy.generateException(AnnotationProxyMaker.java:309) 在 java.base/sun.reflect.annotation.AnnotationInvocationHandler.invoke(AnnotationInvocationHandler.java:86) 位于com.sun.proxy.$Proxy48.type(未知源) annotation.CreateNoOpProcessor.generateClass(CreateNoOpProcessor.kt:64) 在annotation.CreateNoOpProcessor.process处(CreateNoOpProcessor.kt:43) 在 org.jetbrains.kotlin.kapt3.base.incremental.IncrementalProce
annotatedElement.enclosedElements
    .filter { it.kind == ElementKind.METHOD }
    .forEach { method ->
        val returnType = method.getAnnotation(ReturnType::class.java).type
    }
val returnType: TypeMirror? = try {
    method.getAnnotation(ReturnType::class.java)?.type
    null
} catch (e: MirroredTypeException) {
    e.typeMirror
}