当前位置: 首页 > news >正文

Kotlin 中的 companion object 使用指南

companion object 是 Kotlin 中一个非常有用的特性,它允许你在类内部定义一个伴随对象,这个对象与类本身相关联(类似于 Java 中的静态成员,但更强大)。

基本用法

class MyClass {companion object {const val CONSTANT = "This is a constant"fun create(): MyClass = MyClass()}
}

主要特点

替代静态成员

// 调用方式
val instance = MyClass.create()
val constant = MyClass.CONSTANT

可以命名

class MyClass {companion object Factory {fun create(): MyClass = MyClass()}
}

实现接口

interface Factory<T> {fun create(): T
}class MyClass {companion object : Factory<MyClass> {override fun create(): MyClass = MyClass()}
}

扩展函数

class MyClass {companion object 
}fun MyClass.Companion.printHello() {println("Hello")
}// 使用
MyClass.printHello()

与 Java 互操作

Kotlin 的 companion object 成员在 Java 中可以通过 Companion 访问:

// Java 中调用
MyClass.Companion.create();

如果你想在 Java 中像静态成员一样使用,可以添加 @JvmStatic 注解:

companion object {@JvmStaticfun create(): MyClass = MyClass()
}

这样在 Java 中就可以直接调用 MyClass.create()

实际应用场景

工厂方法

class User private constructor(val name: String) {companion object {fun create(name: String): User {return User(name)}}
}

常量定义

class Constants {companion object {const val API_URL = "https://api.example.com"}
}

单例模式

class Singleton {companion object {val instance: Singleton by lazy { Singleton() }}
}

注意事项

  • companion object 在类加载时初始化(类似于 Java 的静态初始化)
  • 每个类只能有一个 companion object
  • companion object 可以访问类的私有成员
  • companion object 是 Kotlin 中实现类级别功能和数据的优雅方式,比 Java 的静态成员更灵活和强大。

相关文章:

  • DDR5舍入定义和算法Rounding Definitions and Algorithms详细讲解
  • 修改vscode切换上一个/下一个标签页快捷键
  • ps照片滤镜
  • 嵌入式学习笔记 - freeRTOS在程序开始在任务内创建任务的好处是什么
  • 【Java Web】速通Tomcat
  • Spring Cloud 开发入门:环境搭建与微服务项目实战(上)
  • 专业C++Qt开发服务,助力您的软件项目腾飞!
  • YARN应用日志查看
  • 数字化转型全场景安全解析:从产品到管理的防线构建与实施要点
  • 《软件项目管理》第一章(概述)期末周复习总结笔记
  • Oracle授权操作
  • 1. 前言与安装pytorch、d2l
  • 企业级应用狂潮:从Spotify到LinkedIn的Llama实战手册
  • 代码随想录算法训练营第四天| 242.有效的字母异位词 、 349. 两个数组的交集 、 202. 快乐数 、1. 两数之和
  • 六级翻译技巧
  • Linux配置DockerHub镜像源配置
  • HashMap与ConcurrentHashMap详解:实现原理、源码分析与最佳实践
  • 【AI+若依框架】基础应用篇
  • C++string1号
  • 谷歌CEO皮查伊眼中的“下一代平台“与未来图景
  • 网页浏览器打开/360搜索优化
  • 怎么做网站的后台/百度收录什么意思
  • 答题网站怎么做/seo如何优化关键词
  • 网站建设首页突出什么/整站优化关键词推广
  • 海南省住房与城乡建设厅网站可查/互联网推广有哪些方式
  • 做商铺最好的网站/国际军事新闻最新消息