Where Should I Keep My Constants in Kotlin?

  • kotlin,java,常量,接口,

在写 Java 代码的时候,定义常量一般在 class 里写 public static final ,或者在 interface 里直接定义。而在 kotlin 中,没有 static 关键词,在 kotlin 的接口中定义的属性还不能被赋值,于是定义常量顿时变得非常困惑。

解决方案之一 , companion object 伴生对象是解决我们在类中定义常量的一个方案。确实不错,代码如下

class Constants {
  companion object {
    val FOO = "foo"
  }
}

在 kotlin 中 Constants.FOO 就可以访问到定义的常量。但是在 Java 中调用就比较难看,Constants.Companion.FOO ,总感觉很别扭。解决方案是在 val FOO 前加上 @JvmField 注解。

方案二,kotlin 的另外一个特性,属性可以不定义在一个 class 或者 object 里。创建一个 Constants 的 kotlin 代码文件,直接定义属性

@file:JvmName("Constants")
package com.example
const val FOO = "foo"

@file:JvmName("Constants") 需要加在代码的第一个行,这样就搞定了。

阅读原文 : Where Should I Keep My Constants in Kotlin? https://blog.egorand.me/where-do-i-put-my-constants-in-kotlin/

相关文章

- EOF -

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Where Should I Keep My Constants in Kotlin?
本文地址: https://binkery.com/archives/2019.09.02-Kotlin中如何定义常量.html