如何在Kotlin中使用Swagger @ApiResponses注解?
如何将以下Swagger注释从Java转换为Kotlin?
@ApiResponses(value = { @ApiResponse(code = 200, message = "Given admin user found"), @ApiResponse(code = 404, message = "..."), @ApiResponse(code = 500, message = "..."), @ApiResponse(code = 400, message = "..."), @ApiResponse(code = 412, message = "...") })
这不起作用:
@ApiResponses(value = listOf( ApiResponse(code = 200, message = "..."), ApiResponse(code = 404, message = "..."), ApiResponse(code = 500, message = "..."), ApiResponse(code = 400, message = "..."), ApiResponse(code = 412, message = "...") ))
错误是:
类型推断失败。 期望的类型不匹配:推断的类型是List,但ApiResponse是预期的
当我只使用一个@ApiResponse
而不是listOf()
,它能够工作,但我必须定义更多@ApiResponse(s)
。
我使用Swagger 2.5.0
正如Kotlin语言参考所述 :
如果Java中的Annotation的value参数具有数组类型,则它将成为Kotlin中的可变参数
所以,为了让你的例子工作,你需要像这样:
@ApiResponses( ApiResponse(code = 200, message = "..."), ApiResponse(code = 404, message = "..."), ApiResponse(code = 500, message = "..."), ApiResponse(code = 400, message = "..."), ApiResponse(code = 412, message = "...") )