为什么IntelliJ无法识别我的主要方法?

ice*_*000 6 intellij-idea kotlin

我有:

fun Array<String>.main() {
  println("Hello World")
}
Run Code Online (Sandbox Code Playgroud)

我可以用'java main.Main -cp [kotlin-runtime]'编译并运行它,但在IntelliJ中没有'run'按钮,我不能选择这个文件作为主文件.

编辑

自Kotlin 1.1.5起,它现在已被IntelliJ正确识别.

gil*_*dor 8

您应该使用顶级主函数

fun main(args: Array<String>) {
    println("Hello World")
}
Run Code Online (Sandbox Code Playgroud)

数组的扩展函数(具有任何名称)不能用作主方法

  • 没错,这是带有main方法的有效Java类,只是因为它可以编译为:`public final class MainKt {public static final void main(java.lang.String []); }`但Idea仅支持常见的顶层主要功能 (2认同)
  • 很好的发现:D我已经在Kotlin的错误跟踪器上打开了一个问题:https://youtrack.jetbrains.com/issue/KT-18083 (2认同)