gpt4 book ai didi

kotlin - 在注解处理阶段获取kotlin fun参数的默认值

转载 作者:行者123 更新时间:2023-12-04 18:33:54 25 4
gpt4 key购买 nike

背景:
我有一个注释处理器,它通过扫描 Controller 上的 Spring 注释来构建改造接口(interface)。我将它设置为在基于 kotlin 或 java 的 spring 应用程序中工作,它可以生成 kotlin 或 java 改造客户端接口(interface)。

问题:
当针对基于 kotlin 的 spring 应用程序运行它时,有没有办法在 Controller 函数上获取默认值,无论是反射还是通过其他方式?

例如 Controller 功能看起来像

@RequestMapping("/foo")
fun getSomething(@RequestParameter foo: String = "bar") {
...

}

我希望能够生成一个看起来像的改造接口(interface)方法
fun getSomething(@Header foo: String = "bar")

我知道引擎盖下的编译器实际上为 jvm 创建了多个覆盖方法:
https://discuss.kotlinlang.org/t/retrieve-default-parameter-value-via-reflection/7314

但我想知道是否有办法在注释处理阶段捕获这些默认值,或者我是否只需要在生成的 kotlin 客户端中没有默认值。

长话短说 - 是否有一种解决方法可以让我捕获这些默认值?

最佳答案

可悲的是,您似乎无法做到这一点:( https://discuss.kotlinlang.org/t/kotlin-reflection-and-default-values/2254 这个想法很有趣。我不确定是否需要为此分析字节码?

这也很有意义,因为默认值也可以来自常量之类的东西,而常量又可以是计算值。如果默认参数是通过计算常量设置的,则在运行时加载之前无法确定它是什么。

关于kotlin - 在注解处理阶段获取kotlin fun参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56602110/

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