我想從一些科特林代碼調用Java方法從科特林與列表參數
val list: List<String> = emptyList()
repository.find(list) // this call goes to a java class
的IntelliJ被告知我有關類型不匹配調用Java方法:
類型不匹配。
必需:(Mutuable)設置<字符串! >
發現:名單<字符串>
我的方法在Java中的簽名:
void find(@Nonnull Set<String> list);
我明白,這不能順利和according to the doc,我可以在科特林使用MutableList代替。但是我也完全控制了Java代碼,並且希望將Java代碼更改爲與Kotlin的列表一起使用。
Java方法簽名如何接受Kotlin的列表?
順便說一句:是IntelliJ告訴我Required: (Mutuable)Set<String!>
?什麼是感嘆號?
一個'Set'不一個'List',反之亦然。這很清楚。 – rmlan
它是「可變的」,而不是「可變的」,和字符串!意味着它是一種平臺類型。見http://stackoverflow.com/questions/27460536/kotlin-what-is-kotlin-string-type –
感謝您的快速解答!這是一個愚蠢的問題,我只是混合了Set和List類型。 – linqu