访问Java类中Kotlin中定义的常量

Dev*_*ath 1 android kotlin

我在Kotlin中定义了一些常量

object Keys {
    const val SPLASH_DURATION : Long = 5000

    const val READ_TIMEOUT : Int = 200
    const val CONNECTION_TIMEOUT : Int = 200
    const val WRITE_TIMEOUT : Int = 200

    var BASE_URL = BuildConfig.SERVER_KEY
}
Run Code Online (Sandbox Code Playgroud)
  • 如果我尝试访问Java类中的BASE_URL Keys.BASE_URL。我收到错误消息,它具有私有访问权限。
  • 如何解决这个问题。我是否需要在Kotlin中以不同的方式声明常量。

Gok*_*oku 5

您可以使用 Companion Objects

  • 类内的对象声明可以用companion关键字标记:

试试这个

class Keys {

    companion object {
        const val SPLASH_DURATION : Long = 5000
        const val READ_TIMEOUT : Int = 200
        const val CONNECTION_TIMEOUT : Int = 200
        const val WRITE_TIMEOUT : Int = 200

    }
}
Run Code Online (Sandbox Code Playgroud)

现在您可以const像这样访问变量

Keys.CONNECTION_TIMEOUT;
Run Code Online (Sandbox Code Playgroud)

第二路

object Keys {
    const val SPLASH_DURATION: Long = 5000
    const val READ_TIMEOUT: Int = 200
    const val CONNECTION_TIMEOUT: Int = 200
    const val WRITE_TIMEOUT: Int = 200
}
Run Code Online (Sandbox Code Playgroud)

现在您可以const像这样访问变量

Keys.SPLASH_DURATION;
Run Code Online (Sandbox Code Playgroud)