runApplication
Unit
を返しません。
署名とmain
の型を返すには、正確でなければなりません:
fun main(Array<String>): Unit
runApplication
、しかし、returns a ConfigurableApplicationContext
。
あなたの「主な」方法は同等です:戻り値の型が表現から推定されているので
fun main(args: Array<String>): ConfigurableApplicationContext {
return runApplication<MyApplication>(*args)
}
- あなたはこれが有効なエントリー・ポイントではありません見ることができます。
fun main(args: Array<String>) {
runApplication<MyApplication>(*args)
}
はUnit
(シングルトンオブジェクト)以来
fun main(args: Array<String>): Unit {
runApplication<MyApplication>(*args)
return Unit
}
と同じであるので、あなたの第1の方法は何も指定されていないデフォルトの戻り値の型で、暗黙的に返される作品Unit
を返すと宣言されたメソッドの終わり。
これは、引数なしのreturn
が有効である理由です。これはUnit
を返します。
あなたがしたい場合、あなたは、これはおそらく行き過ぎですがUnit
に物事を変換するための方法を作ることができます。 mainメソッドのシグネチャはpublic static void main(String[])
でなければなりません - この要件はどこから来るそうです
inline fun Unit(lambda:() -> Any?) {
lambda()
}
...
fun main(args: Array<String>) = Unit { runApplication<MyApplication>(*args) }
It's the same in Java、。
絶対的な感謝をします、ありがとう! –