为什么允许在多个文件中定义main(args:Array <string>)

时间:2019-03-24 17:18:26

标签: kotlin

我在同一包中的两个Kotlin文件中定义了main(args:Array)。编译器不会抱怨。为什么不? 我在Gradle中使用IntelliJ IDEA

#file1.kt
package test
fun main(args: Array<String>) {}

#file2.kt
package test
fun main(args: Array<String>) {}

1 个答案:

答案 0 :(得分:0)

如果它是Java,编译器会抱怨吗?没有。 由于main方法是应用程序的切入点,因此仅当您尝试编写的应用程序中存在歧义时,才可能出现问题。在您的问题中,您没有提供有关您的应用程序的任何细节。这两个文件之间完全不知道它们的价值。

这可能是启动时的问题,但如今却很少发生。像Spring Boot这样的现代框架,都有自己的方式来标识从哪里启动应用程序,即入口点。 他们利用其特定的清单文件以及上下文/类加载器和项目结构。