IntelliJ - 在混合 (Java/Kotlin) 模式下不能 运行 Kotlin Class
IntelliJ - cannot run Kotlin Class in mixed (Java/Kotlin) mode
我不断收到错误消息(右下角),但我已将所有内容配置为 运行 Kotlin/Java。那么,我看不到的缺失位在哪里。
更新
评论指出我的 pkg 名称错误,但没关系,如下更新的屏幕截图所示
此致,
在 Kotlin 中,您的 main 函数超出了任何 class 定义。
如果要编写不带任何参数的主函数,它必须在 class 之外,如下所示:
package org.example
fun main() {
println("Hello World!")
}
请注意,在这种情况下,主函数将位于人为的隐式 class 中,其调用方式类似于后缀为 Kt
的包含文件。这意味着,在您将 main 函数放在文件 AppKt.kt
中的示例中,生成的 main class 称为 AppKtKt
.
如果要在 class 中包含主函数,则必须为参数指定一个参数。此外,它需要是静态的,即它必须在对象内部并且必须用 @JvmStatic
注释。
这可以通过声明一个对象来完成:
object AppKt {
@JvmStatic
fun main(args: Array<String>) {
println("Hello World!")
}
}
或者您可以将主函数放在 class:
的伴生对象中
class AppKt {
companion object {
@JvmStatic
fun main(args: Array<String>) {
println("Hello World!")
}
}
}
我不断收到错误消息(右下角),但我已将所有内容配置为 运行 Kotlin/Java。那么,我看不到的缺失位在哪里。
更新
评论指出我的 pkg 名称错误,但没关系,如下更新的屏幕截图所示
此致,
在 Kotlin 中,您的 main 函数超出了任何 class 定义。
如果要编写不带任何参数的主函数,它必须在 class 之外,如下所示:
package org.example
fun main() {
println("Hello World!")
}
请注意,在这种情况下,主函数将位于人为的隐式 class 中,其调用方式类似于后缀为 Kt
的包含文件。这意味着,在您将 main 函数放在文件 AppKt.kt
中的示例中,生成的 main class 称为 AppKtKt
.
如果要在 class 中包含主函数,则必须为参数指定一个参数。此外,它需要是静态的,即它必须在对象内部并且必须用 @JvmStatic
注释。
这可以通过声明一个对象来完成:
object AppKt {
@JvmStatic
fun main(args: Array<String>) {
println("Hello World!")
}
}
或者您可以将主函数放在 class:
的伴生对象中class AppKt {
companion object {
@JvmStatic
fun main(args: Array<String>) {
println("Hello World!")
}
}
}