kotlin - 等效于 Java 的“公共静态最终字符串”
问题描述
在我的 Java 项目中,我有一个类,我在其中使用公共静态最终字符串属性声明了许多项目常量:
public class Constants {
public static final String KIND_NAME = "user";
public static final String AVATAR_IMAGE_ID = "avatarImageId";
public static final String AVATAR_IMAGE_URL = "avatarImageUrl";
public static final String NAME_COLUMN = "name";
public static final String TOTAL_SCORE_COLUMN = "totalScore";
...
}
所以我可以在我的项目的许多不同地方使用它:
...
String userName = user.getProperty(Constants.KIND_NAME);
...
到目前为止,我已经找到了一些在 Kotlin 中实现这一点的不同方法,例如:伴生对象或数据类。Kotlin 中最好的等效代码是什么?
解决方案
@Todd 的答案会产生一个INSTANCE
class 的实例Constants
,这有时是出乎意料的。更好的选择是:
// file-level
@file:JvmName("Constants")
const val KIND_NAME = "user"
const val AVATAR_IMAGE_ID = "avatarImageId"
const val AVATAR_IMAGE_URL = "avatarImageUrl"
const val NAME_COLUMN = "name"
const val TOTAL_SCORE_COLUMN = "totalScore"
推荐阅读
- mysql - mysql select left join multi tables sum & group by 给出重复的答案
- deployment - 部署描述符加载异常:dd_in_ear_load_EXC
- javascript - Javascript - 提交表单后在变量上添加选中的单选输入
- azure - Azure 表存储 API 回复不一致
- c# - 取消无响应的任务
- amazon-web-services - AppSync/DynamoDB 中的附加解析程序是否会为读取操作计费两次?
- ruby - 如何从Ruby中的人性化字符串中去人性化以前的时间?
- python - 如何删除以某事开头和结尾的子字符串?
- typescript - npm 模块无法导入
- python - 验证准确率达到 90% 后没有提高