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

Kotlin中如何用单个表达式定义并实例化匿名内部类单实例

Kotlin 命名空间合并实现方案

你要的合并逻辑可以直接通过Kotlin原生的匿名对象(object 表达式)实现,不需要显式声明inner class:在类内部定义的object表达式默认持有外部类的引用,天然具备内部类的全部能力,完全可以替代你之前「内部类定义+手动实例化」的两段式写法。

正确实现代码

class Uber {
    // 直接合并类定义和实例化,foo就是具备内部类特性的命名空间对象
    val foo = object {
        fun insert() {}
        fun open() {}
        fun dispose() {}
    }

    val bar = object {
        fun insert() {}
        fun terminate() {}
        fun hop() {}
    }
}

调用方式和原有实现完全一致,无感知

val uber = Uber()
uber.foo.insert()
uber.bar.hop()

补充说明

  • 这种写法完全满足你所有函数归属在同一个Uber类下的要求,调用侧的使用体验和你原有实现没有任何差异
  • 如果你有需要将命名空间对象作为参数传递到外部的场景,可以额外定义对应接口让匿名对象实现,即可解决匿名类型无法显式声明的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:06:07