Kotlin应用程序中main()方法解释

1,093 阅读1分钟

main() 方法是一个必须包含在Kotlin应用程序中的函数。

和Java一样,main() 方法是用Kotlin编写的应用程序的入口。

一个Java应用程序要求你在一个class 里面有一个main() 方法,如下图:

class Scratch {
public static void main(String[] args) {
// Your app code here
 System.out.println("Hello World");
}
}

但是在Kotlin中,你不需要为main() 方法创建一个class

Kotlin中的main() 方法有两个构造函数:一个带有args 参数,一个没有。

你可以按如下方式编写Kotlin的main() 方法:

fun main() {
println("Hello World!")
}
// or

fun main(args: Array<String>) {
println("Hello World!")
println(args.contentToString())
}

如果没有main() 方法,在运行时就会抛出一个错误,说Function 'main' not found

在Android中,main() 方法被替换为MainActivity 类,该类在你创建一个新的Android项目时由Android Studio生成。

一个例子MainActivity 类可能看起来如下:

package com.example.kotlinbasic
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}

然后,MainActivity 类应该被注册在AndroidManifest.xml 文件中,作为MAIN 意向的活动来运行,如下图所示:

<activity
android:name=".MainActivity"
android:exported="true" >
<intent-filter>
 <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

这就是为什么在开发Android应用程序时,你不会在Kotlin文件中看到main() 方法。

相反,你有一个带有onCreate() 方法的MainActivity 类。

然后,MainActivity 类将被注册在AndroidManifest.xml 文件中,作为带有<intent-filter> 标签的入口点。