有没有办法限制stdlib功能'科特林的能见度?

时间:2017-07-04 01:37:25

标签: intellij-idea kotlin kotlinc

Kotlin附带了许多标准库函数,默认情况下很多都是可见的而不实际导入它们。因此,listOfarrayListOfArrayList<T>(),......等函数实际上已插入到全局命名空间中。是否有一个编译器标志会禁用此行为?

1 个答案:

答案 0 :(得分:2)

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

您不必担心自动导入的顶级功能。如果您不使用任何顶级函数,则不会向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[]
------------------------------------