You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin实现无需创建实例调用方法(类似Java static效果)咨询

Kotlin 实现 Java 风格静态方法的可行方案

Kotlin 没有原生的 static 关键字,可通过以下三种常用方式实现无需实例化直接调用方法的效果,结合你提供的示例代码改造如下:

方案1:伴生对象(最常用的类内静态实现)

将方法放在类的 companion object 代码块中,即可直接通过类名调用:

fun main() {
    // 无需创建Ob1实例,直接通过类名调用
    Ob1.try1()
}

class Ob1{
    companion object {
        fun try1() = println("try 1S")
        // 其他静态属性/方法可放在这个块内
    }
}

如果需要支持 Java 侧以原生静态方法的形式调用,给方法添加 @JvmStatic 注解即可。

方案2:包级(顶层)函数

如果方法不需要和 Ob1 类的实例成员绑定,可以直接定义在.kt文件的顶层,不需要隶属于任何类,调用时无需加类名前缀:

fun main() {
    // 直接全局调用
    try1()
}

// 顶层函数,不属于任何类
fun try1() = println("try 1S")

class Ob1{
    // 类的普通成员定义在这里
}

方案3:object 声明单例类

如果这个类本身就不需要创建多个实例,所有方法都是静态性质的,直接用 object 关键字声明类即可:

fun main() {
    Ob1.try1()
}

// 单例类,全局仅存在一个实例,方法可直接通过类名调用
object Ob1{
    fun try1() = println("try 1S")
}

选型参考

  • 方法属于特定类的业务范围,需要和类绑定:选伴生对象
  • 方法是通用工具方法,不需要绑定特定类:选包级函数
  • 类本身不需要多实例,所有方法都是静态性质:选object单例类

内容的提问来源于stack exchange,提问作者Avihay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 08:24:03