companion-关于kotlin中的Static

Kotlin 复制代码
companion object {
        const val PARAMETER_ID: Short = 506
        const val NULL_NAME: String = ""
        const val MAP_NAME_LENGTH: Int = 21
        const val SITE_NAME_LENGTH: Int = 21
    }

这段代码定义了一个 companion object,其作用是在 Kotlin 类中创建静态成员,即类的伴生对象。这些成员可以在不创建类实例的情况下直接通过类名访问。

companion object

  • 在 Kotlin 中,companion object 用来定义与类关联的静态成员。它类似于 Java 中的 static 成员,但 Kotlin 不支持 static 关键字,因此使用伴生对象来实现类似功能
  • 伴生对象里的成员可以通过类名直接访问,不需要创建类的实例。
Kotlin 复制代码
class ExampleClass {
    companion object {
        const val PARAMETER_ID: Short = 506
        const val NULL_NAME: String = ""
        const val MAP_NAME_LENGTH: Int = 21
        const val SITE_NAME_LENGTH: Int = 21
    }
}

fun main() {
    // 直接通过类名访问 companion object 中的常量
    println(ExampleClass.PARAMETER_ID)         // 输出: 506
    println(ExampleClass.NULL_NAME)            // 输出: ""
    println(ExampleClass.MAP_NAME_LENGTH)      // 输出: 21
    println(ExampleClass.SITE_NAME_LENGTH)     // 输出: 21
}
相关推荐
只可远观6 小时前
Android 自动埋点(页面打开 / 关闭 + 点击事件)完整方案
android·kotlin
aqi0010 小时前
FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid
android·ffmpeg·kotlin·音视频·直播·流媒体
阿巴斯甜11 小时前
子协程的异常传播(CoroutineExceptionHandler ):
kotlin
alexhilton1 天前
Android上的ZeroMQ:用发布/订阅模式连接Linux服务
android·kotlin·android jetpack
Fate_I_C1 天前
View Binding的基础使用
android·kotlin·viewbinding
zhangphil1 天前
Android Coil 3 extend ImageRequest‘s custom method/function,Kotlin
android·kotlin
Empty-Filled2 天前
Prompt改版后怎么回归:一套测试集和评分方法
回归·kotlin·prompt
阿巴斯甜2 天前
launch 和 async 内部都是串行,为什么还能实现并发?
kotlin
古怪今人2 天前
Gradle构建工具 Groovy/Kotlin DSL的现代化自动化构建工具
开发语言·kotlin·自动化
赏金术士2 天前
Kotlin 协程与挂起函数(Coroutines & suspend)入门到实战
android·开发语言·kotlin