我正在用Kotlin写一个注释处理器,我想获取构造函数参数的类型。
这是我带注释的课程
@SomeAnnotation
class MyClass(name: String, age: Int)
我可以从String
中提取Int
和annotatedElement.kotlinMetadata
类型吗?还是应该只使用annotatedElement
的{{1}}?我怎样才能做到这一点?
这就是我被困住的地方:
TypeElement
val metadata = annotatedElement.kotlinMetadata as KotlinClassMetadata
val proto = metadata.data.classProto
val mainConstructor = proto.constructorList.find { it.isPrimary }
val parameters = annotatedElement.typeParameters
返回0,我应该有2。
答案 0 :(得分:2)
您的代码中有两个错误:
typeParameters
而不是parameters.map { it.type }
annotatedElement
而不是mainConstructor
您可以在此处纠正它们:
mainConstructor?.parameters?.map { it.type }