kotlin:注释中数组的一些问题

我在注释中遇到了一些问题:

Entity Table(uniqueConstraints = array(UniqueConstraint(columnNames = array("key", "userid")))) public class ... 

在这种情况下,我得到以下错误:

类型推断失败。 期望的类型不匹配:找到:kotlin.Array必需:kotlin.String

uniqueConstraints = array(…)没有问题,但是Idea在columnNames = array(…)中显示错误

我使用hibernate-jpa-2.1-api-1.0.0.Final.jar


解决方法 :使用组合键(@ javax.persistence.IdClass)来替代uniqueConstraints

使用展开运算符 :

 UniqueConstraint(columnNames = *array("key", "userid")) 

这适用于我:

 @Table(uniqueConstraints = arrayOf( UniqueConstraint(columnNames = arrayOf("key", "key")) )) 

今天自己正在挣扎着。 以下片段适用于最新版本的Kotlin:

 @ApiResponses(value = *arrayOf( ApiResponse(code = 403, message = "Unauthorized"), ApiResponse(code = 404, message = "Item not found"))) 

或更短的选项:

 @ApiResponses( ApiResponse(code = 403, message = "Unauthorized"), ApiResponse(code = 404, message = "No active snapshots")) 

如果具有数组的注释被定义为:

 public @interface ApiResponses { ApiResponse[] value(); }