欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Step into Kotlin,stepintokotlin

来源: javaer 分享于  点击 35444 次 点评:262

Step into Kotlin,stepintokotlin


目录

    • 与 Java 互相调用
      • Kotlin 调用 Java
      • Java 调用 Kotlin
        • 调用类
        • 调用伴生对象的方法
        • Java 重载
        • 检查型异常

摘要

Kotlin 调用 Java,Java 调用 Kotlin(类,伴生对象,重载,异常)

与 Java 互相调用

Kotlin 调用 Java

Java

public class JavaBean {

    private String name;

    public JavaBean(String name) {
        this.name = name;
    }

    public void hello() {
        System.out.println("hello,my name is " + name);
    }

    public boolean is(String name){
        return this.name.equals(name);
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Kotlin

val javaBean = JavaBean("Peter")
javaBean.hello()

对于 is 等在 Kotlin 中是关键字而在 Java 中不是关键字的方法,在调用时需要加上 “ 符号。

javaBean.`is`("Peter")

Java 调用 Kotlin

调用类

Kotlin

class KotlinBean(val name: String) {
    fun hello() {
        println("hello,my name is " + name)
    }
}

Java

KotlinBean bean = new KotlinBean("Peter");
bean.hello();

调用伴生对象的方法

Java 调用伴生对象的方法时需要加上注解 platformStatic

Kotlin

class KotlinBean(val name: String) {
    fun hello() {
        println("hello,my name is " + name)
    }

    companion object {
        platformStatic fun foo() {
            println("companion foo")
        }

        fun bar() {
            println("companion bar")
        }
    }
}

Java

KotlinBean.foo();

以上 KotlinBean 的伴生对象中 foo() 对于Java 来说是静态方法,而 bar()则不是。

Java 重载

Kotlin 方法可以通过注解 jvmOverloads 实现 Java 调用中的方法重载

Kotlin

jvmOverloads fun f(a: String, b: Int = 0, c: String = "abc") {
}

Java

obj.f("str");
obj.f("str", 1);
obj.f("str", 1, "foo");

检查型异常

由于 Kotlin 没有 CheckException,所以如果需要在 Java 中抛出此种异常,需要添加注解 @throws

Kotlin

@throws(IOException::class) fun e() {
    throw IOException()
}

Java

try {
    obj.e();
} catch (IOException e) {
    e.printStackTrace();
}

相关文章

    暂无相关文章
相关栏目:

用户点评