有没有更好的方法来定义Kotlin中的const?

时间:2018-04-26 08:16:54

标签: android kotlin

我需要在我的APP中定义一些const,Code A在字符串资源文件中定义这个const,

代码B将此const定义为kt文件中的top val,我可以像const.SavedJsonName

一样访问它

使用代码A中的资源有点不方便,Code B是一个好方法吗?

或者你有更好的方法吗?

代码A

<string name="SavedJsonName">mySavedJsonC</string>

代码B

// const.kt

val SavedJsonName="mySavedJsonC"

2 个答案:

答案 0 :(得分:2)

第一种方法在Android上考虑能力显然更好,因为它支持i18n(多语言),而第二种方法效率更高。

我的意见是,如果它是一个自然语言字符串(如UI上显示的文本),请将它们放在string.xml中。如果不是(如某些数据库表的ID),请将它们放在像const.kt这样的kt文件中。

顺便说一下,你最好使用const val SAVED_JSON_NAME = "mySafedJsonC"(这使它成为编译时常量,使编译器能够进行常量折叠)而不是你提供的代码。

答案 1 :(得分:0)

如果你只是想声明一些字符常量,你可以使用第一种方法,或者你可以使用第二种方法。

实际上,如果使用Code A

,可以使用一些utils方法来访问这些常量