如何在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 = "...") ) 
    Interesting Posts