是否有限制stdlib函数在Kotlin中的可见性?
Kotlin带有许多标准的库函数,其中很多默认情况下是可见的,而实际上并没有导入它们。 所以像listOf
, arrayListOf
, ArrayList<T>()
等函数事实上被插入到全局名称空间中。 有一个编译器标志,将禁用此行为?
可悲的是,你不能。 就像你不能禁止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[] ------------------------------------
- Kotlin“rem”作为“mod”的替代品不可用?
- 我唯一的一个IDEA的自动导入不适用于Kotlin?
- TransformException重复org / intellij / lang / annotations / Identifier.class的条目
- 从命令行运行Java到Kotlin转换器?
- Kotlin NoClassDefFoundError和spring @RequestMapping方法
- 有没有办法在Intellij IDE中显示给定的Kotlin类的所有扩展函数?
- 为什么IntelliJ Idea不能从另一个Kotlin模块中找到Maven依赖关系?
- 编译Kotlin到JavaScript
- 在IntelliJ的Kotlin> Java转换之后,将源代码恢复为Java