我想从一些科特林代码调用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