gpt4 book ai didi

kotlin - Kotlin注释处理器如何获取构造函数参数类型?

转载 作者:行者123 更新时间:2023-12-02 13:19:46 26 4
gpt4 key购买 nike

我正在用Kotlin写一个注释处理器,我想获得构造函数参数的类型。

这是我带注释的类(class)

@SomeAnnotation
class MyClass(name: String, age: Int)

我可以从 String中提取 IntannotatedElement.kotlinMetadata类型吗?还是我应该只使用 annotatedElementTypeElement?我怎样才能做到这一点?

这是我遇到的问题:
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 }

    关于kotlin - Kotlin注释处理器如何获取构造函数参数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953516/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com