为什么Kotlin的代码可以直接从"Kotlin.collections"调用顶级函数,而不导入包。例如下面的函数listOf
:
data class Person1(val name: String, val age: Int)
class DataClassExecutor {
... ...
fun test(arg: String?): String? {
val persons = listOf(
Person1("Lucy", age = 26),
Person1("Lily", age = 29))
... ...
}
}
请参阅本页:https://kotlinlang.org/spec/packages-and-imports.html.上面写着:
有些包的所有实体都是隐式的导入到任何Kotlin文件中,这意味着可以访问这样的实体而不显式使用导入指令。
该列表包括kotlin.collections
。
这与Java中隐式导入java.lang
的方式类似。在Java中,不需要说java.lang.System.out.println
,只要System.out.println
就足够了。