在Google I / O 2017中, Kotlin被宣布为Android应用程序开发的官方语言。这种语言的相似之处以及与Java语言的互操作性使其在开发人员中迅速得到普及。在设计一个Android项目时,可以将Java和Kotlin的代码混合在一起。开发人员面临的一些主要挑战,例如避免空指针异常,很容易由Kotlin处理。由于所有这些原因,学习Kotlin变得至关重要。但是,Android Studio会满足这一需求。开发人员可以在Android Studio中轻松地将Java代码转换为Kotlin。开发人员面前可能有两种情况:
- 将完整的Java文件/类转换为Kotlin文件/类
- 在项目中添加一个新的Kotlin文件/类,并转换一段Java代码。
本文大致介绍了在两种情况下执行代码转换所涉及的步骤。
代码转换
方法1:将完整的类/文件转换为Kotlin
步骤1:打开源代码文件
打开要转换的Java源代码文件。考虑要转换为Kotlin的MainActivity文件的给定代码。
Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
// declaring variable for TextView component
private TextView textView;
// declaring variable to store
// the number of button click
private int count;
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// assigning ID of textView2 to the variable
textView = findViewById(R.id.textView2);
// initializing the value of count with 0
count = 0;
}
// function to perform operations
// when button is clicked
public void buttonOnClick( View view){
// increasing count by one on
// each tap on the button
count++;
// changing the value of the
// textView with the current
// value of count variable
textView.setText(Integer.toString(count));
}
}
Kotlin
import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// declaring variable for TextView component
private var textView: TextView? = null
// declaring variable to store
// the number of button click
private var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// assigning ID of textView2 to the variable
textView = findViewById(R.id.textView2)
// initializing the value of count with 0
count = 0
}
// function to perform operations
// when button is clicked
fun buttonOnClick(view: View?) {
// increasing count by one on
// each tap on the button
count++
// changing the value of the
// textView with the current
// value of count variable
textView!!.text = Integer.toString(count)
}
}
步骤2:选择选项
从左侧的“选项”菜单中,选择“ Android项目”,然后右键单击源代码文件。选择选项“将Java文件转换为Kotlin文件” 。在Android Studio中打开文件时,也可以使用快捷键命令“ Ctrl + Alt + Shift + K” 。
将出现一个对话框,询问在Project中配置Kotlin的权限。要执行代码转换,必须授予此权限。此外,选择“所有模块”选项,然后选择计算机上安装的最新的Kotlin编译器。单击“确定”后, Android Studio将在应用程序模块的build.gradle文件中进行一些更改,以成功执行代码转换。
步骤3:产生Kotlin档案
再次右键单击Java类/文件,选择“将Java文件转换为Kotlin文件”选项。这次将进行所需的转换,并且文件扩展名将从更改。 Java到.kt 。以下是在转换上述MainActivity时产生的等效Kotlin代码。 Java文件。
科特林
import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
// declaring variable for TextView component
private var textView: TextView? = null
// declaring variable to store
// the number of button click
private var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// assigning ID of textView2 to the variable
textView = findViewById(R.id.textView2)
// initializing the value of count with 0
count = 0
}
// function to perform operations
// when button is clicked
fun buttonOnClick(view: View?) {
// increasing count by one on
// each tap on the button
count++
// changing the value of the
// textView with the current
// value of count variable
textView!!.text = Integer.toString(count)
}
}
方法2:将单独的Kotlin文件添加到项目中
Android Studio允许在项目中混合Java和Kotlin代码。如果需要通过用Kotlin编写来重用一段Java代码,则可以执行以下步骤。
步骤1:建立Kotlin类别/档案
在应用程序项目文件的Java文件夹内创建新的Kotlin扩展名/文件。给它起一个想要的名字。创建文件后,Android Studio将显示一条警告消息,提示“未配置Kotlin” 。
步骤2:将Kotlin配置到项目中
单击警报消息中显示的“配置”选项。将出现一个对话框,选择“所有模块”,然后选择计算机上安装的最新的Kotlin编译器。单击“确定”,然后在build.gradle文件中进行更改。
步骤3:复制并贴上
Android Studio完成项目文件的构建后,请打开创建的Kotlin类/文件。复制要转换的Java代码。将该代码粘贴到具有Kotlin扩展名的已创建文件/类中。该Java代码将由Android Studio自动转换为Kotlin。
Kotlin相对于Java的优势
- Kotlin代码比Java更简洁。
- 它可以与Java互操作(兼容)。
- Kotlin通过在类型系统中放置“ Null”来解决可空性问题。
- 更干净,更安全的代码。