如何在kotlin中使主java方法更简单?

pix*_*xel 1 java spring gradle kotlin

我正在使用gradle应用程序插件:

apply plugin:'application'
mainClassName = "com.example.MyApplication"
Run Code Online (Sandbox Code Playgroud)

我有主要应用程序的以下kotlin代码:

@SpringBootApplication
class MyApplication {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            runApplication<MyApplication>(*args)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法简化这些代码,以便不使用companion object@JvmStatic注释?

zsm*_*b13 6

查看JetBrains/kotlin-examples repo中的Gradle hello-world示例.

总而言之,您可以这样做:

// src/main/kotlin/demo/helloWorld.kt
fun main(args: Array<String>) {
    println(getGreeting())
}
Run Code Online (Sandbox Code Playgroud)

然后在你的build.gradle文件中:

apply plugin: 'kotlin'
apply plugin: 'application'

mainClassName = 'demo.HelloWorldKt'
Run Code Online (Sandbox Code Playgroud)

在特定情况下,mainClassName将是com.example.MyApplicationKt,如果你的文件名是MyApplication.kt.至于那个Kotlin文件,它可能包含以下代码:

@SpringBootApplication
class MyApplication 

fun main(args: Array<String>) {
    runApplication<MyApplication>(*args)
}
Run Code Online (Sandbox Code Playgroud)