Kotlin注释处理器如何获取构造函数参数类型?
我正在用Kotlin编写一个注释处理器,我想得到构造函数参数的类型 这是我的注释类Kotlin注释处理器如何获取构造函数参数类型?,kotlin,annotations,Kotlin,Annotations,我正在用Kotlin编写一个注释处理器,我想得到构造函数参数的类型 这是我的注释类 @SomeAnnotation class MyClass(name: String, age: Int) 我可以从annotatedElement.kotlinMetadata中提取字符串和Int类型吗?或者我应该只使用注释删除,它是类型元素?我该怎么做 这就是我受挫的地方: val metadata = annotatedElement.kotlinMetadata as KotlinClassMetada
@SomeAnnotation
class MyClass(name: String, age: Int)
我可以从annotatedElement.kotlinMetadata
中提取字符串
和Int
类型吗?或者我应该只使用注释删除
,它是类型元素
?我该怎么做
这就是我受挫的地方:
val metadata = annotatedElement.kotlinMetadata as KotlinClassMetadata
val proto = metadata.data.classProto
val mainConstructor = proto.constructorList.find { it.isPrimary }
val parameters = annotatedElement.typeParameters
typeParameters
返回0,我应该有2。您的代码中有两个错误:
typeParameters
,而不是parameters.map{it.type}
annotatedElement
而不是mainConstructor
mainConstructor?.parameters?.map { it.type }