2

Kotlin 附带了许多标准库函数,其中很多函数在默认情况下是可见的,而无需实际导入它们。因此,像listOf, arrayListOf, ArrayList<T>(), ... 这样的函数实际上被插入到全局命名空间中。是否有编译器标志可以禁用此行为?

4

1 回答 1

2

可悲的是,你不能。就像你不能禁止java.langjava 中自动导入的包一样。

您无需担心自动导入的顶级函数。如果您不使用任何顶级函数,则不会向 Java 字节码发出类引用/方法引用。并且所有的*arrayOf函数都将转换为 Java 数组创建,例如:

Kotlin          |        Java
------------------------------------
byteArrayOf     |    new byte[]
------------------------------------
shortArrayOf    |    new short[]
------------------------------------
intArrayOf      |    new int[]
------------------------------------
longArrayOf     |    new long[]
------------------------------------
floatArrayOf    |    new float[]
------------------------------------
doubleArrayOf   |    new double[]
------------------------------------
charArrayOf     |    new char[]
------------------------------------
booleanArrayOf  |    new boolean[]
------------------------------------
arrayOf<T>      |    new T[]
------------------------------------
于 2017-07-04T02:22:39.533 回答