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> 标签的入口点。