服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 在 Android Studio Java 项目里混合 Kotlin 编程

在 Android Studio Java 项目里混合 Kotlin 编程

2023-10-04 04:48未知服务器之家 Java教程

首先,先搞明白一个概念,这里的 Java 混合 Kotlin 是指文件层级的混合,即 Java 代码还是写在 .java 文件中,Kotlin 代码还是写在 .kt 文件中,只不过是可以在 Java 的代码中可以调用自己写好的 Kotlin 类,从 Java 的角度看,它并不知道

首先,先搞明白一个概念,这里的 Java 混合 Kotlin 是指文件层级的混合,即 Java 代码还是写在 .java 文件中,Kotlin 代码还是写在 .kt 文件中,只不过是可以在 Java 的代码中可以调用自己写好的 Kotlin 类,从 Java 的角度看,它并不知道它调用的这个类是 Kotlin 写的,这个类和平时遇到的其他类的使用并没有什么特别的,例如“KotlinTest myKotlinTest = new KotlinTest();”

配置

  1. 先确保自己的 Android Studio 下载有 Kotlin 插件,查看路径 File -> Settings... -> Plugins -> 点击 Installed -> 查看 Languages 栏下是否有 Kotlin,如果有注意记一下版本(我的是1.9.0),等下配置要用
    在 Android Studio Java 项目里混合 Kotlin 编程

  2. 在项目根目录的 build.gradle 中,添加如下代码:

buildscript {
    ext.kotlin_version = '1.9.0' // 添加代码 1 
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // 添加代码 2
    }
}

需要注意的是,buildscript 需要在 plugins 标签之上,否则报错,贴一个正确图:
在 Android Studio Java 项目里混合 Kotlin 编程

  1. 在需要混合编程的模块下的 build.gradle ,添加如下代码:
plugins {  
    id 'com.android.application' 
    id 'kotlin-android'  // 添加代码1 在该模块启动 Kotlin
}
...
android {
	...
	// 添加代码2 指定 kotlin 使用的 Jvm 版本,注K意要与自己使用的JDK版本一致
	kotlinOption {
		jvmTarget = "1.8"
	}
}
...
dependencies {
	...
	implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlin_version}" // 添加代码3 指定 Kotlin 版本
	...
}

至此,配置完成,接下里创建一个样例:

class TestKotlin(val name: String, val age: Int) {  
    // 定义一个方法  
    fun sayHello() {  
        println("Hello, my name is $name and I am $age years old.")  
    }  
}  

// 可以直接运行
fun main() {  
    // 创建一个 Person 对象  
    val person = TestKotlin("Alice", 25)  
  
    // 调用对象的方法  
    person.sayHello()  
}

创建一个 Java 测试类来调用上面的 Kotlin 类的方法:

public class MainTest {  
    @Test  
    public void test() {  
        TestKotlin testKotlin = new TestKotlin("xxx", 1);  
        testKotlin.sayHello();  // 输出:Hello, my name is xxx and I am 1 years old.
    }  
}

完毕

延伸 · 阅读

精彩推荐