Kotlin 附带了许多标准库函数,其中很多函数在默认情况下是可见的,而无需实际导入它们。因此,像listOf
, arrayListOf
, ArrayList<T>()
, ... 这样的函数实际上被插入到全局命名空间中。是否有编译器标志可以禁用此行为?
问问题
143 次
1 回答
2
可悲的是,你不能。就像你不能禁止java.lang
java 中自动导入的包一样。
您无需担心自动导入的顶级函数。如果您不使用任何顶级函数,则不会向 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 回答