我需要在我的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"
答案 0 :(得分:2)
第一种方法在Android上考虑能力显然更好,因为它支持i18n(多语言),而第二种方法效率更高。
我的意见是,如果它是一个自然语言字符串(如UI上显示的文本),请将它们放在string.xml
中。如果不是(如某些数据库表的ID),请将它们放在像const.kt
这样的kt文件中。
顺便说一下,你最好使用const val SAVED_JSON_NAME = "mySafedJsonC"
(这使它成为编译时常量,使编译器能够进行常量折叠)而不是你提供的代码。
答案 1 :(得分:0)
如果你只是想声明一些字符常量,你可以使用第一种方法,或者你可以使用第二种方法。
实际上,如果使用Code A
,可以使用一些utils方法来访问这些常量