当前位置: 首页 > 知识库问答 >
问题:

批注处理异常:无法分析:java.lang.reflect.InvocationTargetException

冯星剑
2023-03-14

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

下面是注释的代码:

@Retention(AnnotationRetention.SOURCE)
@Target(AnnotationTarget.FUNCTION)
annotation class ReturnType(val type: KClass<*>)

以及来自注释处理器的部分代码:

annotatedElement.enclosedElements
    .filter { it.kind == ElementKind.METHOD }
    .forEach { method ->
        val returnType = method.getAnnotation(ReturnType::class.java).type
    }

当我尝试编译代码时,出现以下异常:

共有1个答案

王刚毅
2023-03-14

解决方案可在以下链接中找到:https://area-51 . blog/2009/02/13/getting-class-values-from-annotations-in-an-annotationprocessor/

诀窍是捕获 MirroredTypeException 并从中提取 typeMirror。

val returnType: TypeMirror? = try {
    method.getAnnotation(ReturnType::class.java)?.type
    null
} catch (e: MirroredTypeException) {
    e.typeMirror
}
 类似资料:
  • 本文向大家介绍.NET中的异常和异常处理用法分析,包括了.NET中的异常和异常处理用法分析的使用技巧和注意事项,需要的朋友参考一下 本文较为详细的分析了.NET中的异常和异常处理用法。分享给大家供大家参考。具体分析如下: .NET中的异常(Exception) .net中的中异常的父类是Exception,大多数异常一般继承自Exception。 可以通过编写一个继承自Exception的类的方式

  • 我对Spring批处理跳过逻辑有一些问题。我已经配置了一个作业的步骤来跳过两个异常(SQLIntegrityConstraintViolation异常和乐观锁定失败异常): 但当作业运行时,由于我将其配置为跳过的异常,作业以未知状态完成: 我做错什么了吗?我希望这一步跳过负责抛出其中一个异常的项,并继续处理,以便以完成状态结束。

  • 本文向大家介绍Java异常处理实例分析,包括了Java异常处理实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java异常处理的用法。分享给大家供大家参考。具体分析如下: Java的异常处理机制可以帮助我们避开或者处理程序可能发生的错误,从而使得程序在遇到一些可恢复的错误的时候不会意外终止,而是去处理这些错误,也使得我们在写程序的时候不必写大量的代码来检查错误情况,增强了代码的可读

  • 我有下一个spring批处理配置类: 启动应用程序时,我收到下一个异常:

  • 本文向大家介绍java中的connection reset 异常处理分析,包括了java中的connection reset 异常处理分析的使用技巧和注意事项,需要的朋友参考一下 在Java中常看见的几个connection rest exception, Broken pipe, Connection reset,Connection reset by peer Socked reset cas

  • 前言 在 gRPC 的新版本(1.0.0-pre2)中,为了方便传递 debug 信息,在 StatusException 和 StatusRuntimeException 中增加了名为 Trailer 的 Metadata。 注: 在此之前,Status(和Status映射的StatusException)只有两个字段可以传递信息:1. status code 2. status decript