如果您访问 List<[Some Type]>
类型的 Java 值在 Kotlin 中,您将得到类型 (Mutable)List<[Some Type]!>!
.
例如:
Java代码:
public class Example {
public static List<String> getList() {
return Arrays.asList("A", "B", "C");
}
}
Kotlin 代码:
val list = Example.getList()
// list is of type (Mutable)List<String!>!
这是 IntelliJ 如何显示它的:
但是,如果您想像这样创建自己的这种类型的变量:
val list2: (Mutable)List<String>
然后 IntelliJ 将正确突出显示类型,但会给出错误 Unexpected Tokens
.
这是什么(Mutable)List
?
最佳答案
Kotlin 中没有类型 (Mutable)List
。
这表明 Example.getList() 返回的列表类型
不会在编译时决定,但会在运行时决定。
在您的情况下,它将是 List
而不是 MutableList
因为 Arrays.asList()
返回 FixedSizeList
.
如果您像这样实现了Example.getList()
:
public static List<String> getList() {
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
return list;
}
那么在运行时,您的列表
的类型将是MutableList
。
关于Kotlin(可变)列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54259737/