Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在注释处理阶段获取kotlin fun参数的默认值_Kotlin_Annotation Processing - Fatal编程技术网

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

在注释处理阶段获取kotlin fun参数的默认值,kotlin,annotation-processing,Kotlin,Annotation Processing,背景: 我有一个注释处理器,它通过扫描控制器上的spring注释来构建改装接口。我已经将其设置为在kotlin或基于java的spring应用程序中工作,并且它可以生成kotlin或java翻新客户端接口 问题: 当在基于kotlin的spring应用程序上运行它时,是否有方法获取控制器函数的默认值,无论是反射式的还是通过其他方式 e、 g.控制器功能类似于 @RequestMapping("/foo") fun getSomething(@RequestParameter foo: Strin

背景: 我有一个注释处理器,它通过扫描控制器上的spring注释来构建改装接口。我已经将其设置为在kotlin或基于java的spring应用程序中工作,并且它可以生成kotlin或java翻新客户端接口

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

e、 g.控制器功能类似于

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

}
fun getSomething(@Header foo: String = "bar")
我希望能够生成一个类似于

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

}
fun getSomething(@Header foo: String = "bar")
我知道,幕后的编译器实际上为jvm创建了多个覆盖方法:

但是我想知道是否有一种方法可以在注释处理阶段捕获这些默认值,或者我是否必须在生成的kotlin客户端中不使用默认值


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

遗憾的是,您似乎无法做到这一点:(这个想法很有趣。我不确定是否需要为此分析字节码


这也有点道理,因为默认值也可以来自常量,而常量又可以是计算值。如果默认参数是通过计算常量设置的,那么在加载到运行时之前,没有确定的方法知道它将是什么。

我希望有人能想出一个“确定这是一个解决方法”回答这个问题,所以我尽可能推迟赏金的发放,但是谢谢!