[Kotlin] Using Kotlin from Java

Create a Kotlin class:

复制代码
package com.rsk.kotlin

class Meeting(val title: String) {
    // in Java, you can use getLocation and setLocation
    var location = ""
    // you cannnot directly use m.description = 'xxx' or System.out.println(m.description)
    // you have to add @JvmField, so that in Java we can access as a property
    @JvmField
    var description = ""

    //  This class might throw exception
    @Throws(MeetingException::class)
    fun addAttendee(attendee: String) {
        if (attendee.isNullOrEmpty()) throw MeetingException("Attendee must have a name")
    }

    companion object {
        // by marking @JvmField & @JvmStatic, we can make it easy to use in java
        @JvmField
        val APP_VERION = 1

        @JvmStatic
        fun getAppVersion(): Int {
            return APP_VERION
        }
    }
}

class MeetingException(message: String): Exception(message) {

}
复制代码

 

Create a Java class to use Kotlin:

复制代码
package com.rsk.java;

import com.rsk.kotlin.Meeting;
import com.rsk.kotlin.MeetingException;

public class Program {
    public static void main(String[] args) {
        Meeting board = new Meeting("Board Meeting");
        board.setLocation("London");
        System.out.println(board.getLocation());

        board.description = "React meeting";
        System.out.println(board.description);

        System.out.println(Meeting.APP_VERION);
        System.out.println(Meeting.getAppVersion());

        try {
            board.addAttendee("");
        } catch(MeetingException me) {
            me.printStackTrace();
        }

    }
}
复制代码

 

posted @   Zhentiw  阅读(102)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-10-15 [Svelte 3] Render HTML directly into a component in Svelte 3
2018-10-15 [Bash] Search for Text with `grep`
2018-10-15 [Bash] Find Files and Folders with `find` in Bash
2018-10-15 [Angular] Architectures for Huge Angular Based Enterprise
2015-10-15 [Javascript] Manage Application State with Immutable.js
2014-10-15 [JWT] AngularJS Authentication with JWT
点击右上角即可分享
微信分享提示