2014-10-06 45 views
1

我有註釋的一些問題:科特林:在註釋中的一些問題與陣列

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

在這種情況下,我得到以下錯誤:

Type inference failed. Expected type mismatch: found: kotlin.Array required: kotlin.String

沒有與uniqueConstraints沒有問題= array(...)但Idea在我的錯誤columnNames = array(...)

我u唱的Hibernate JPA-2.1-API 1.0.0.Final.jar


解決方法:採用複合鍵我不是uniqueConstraints(@ javax.persistence.IdClass)

回答

2

使用spread operator

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

這個工作對我來說:

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

它是3多年前。 Kotlin在里程碑,有時新版本打破現有的代碼 @Alykoff加利,關於最新版本,是的,你是絕對正確的 – 2017-10-29 19:40:40

0

今天正在爲此而掙扎。

@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(); 
}