android - Kotlin 注释 - 要求参数是来自特定类的常量变量
问题描述
我filter
这里有一个功能
fun filter(category: String) {
...
}
和一个有许多常量字符串的类
object Constants {
val CAT_SPORT = "CAT_SPORT"
val CAT_CAR = "CAT_CAR"
...
}
如何确保参数category
是来自Constants
(或抛出警告)的常量字符串?
我正在寻找类似的东西@StringRes
。
我知道Enum
可能会成功,但现在不喜欢代码重构。
解决方案
使用 androidx.annotation 你可以做这样的事情:
object Constants {
@Retention(AnnotationRetention.SOURCE)
@StringDef(CAT_SPORT, CAT_CAR)
annotation class Category
const val CAT_SPORT = "CAT_SPORT"
const val CAT_CAR = "CAT_CAR"
}
fun filter(@Constants.Category category: String) {
...
}
推荐阅读
- javascript - 如何使下拉切换与 Javascript 一起使用?
- node.js - 如何使用 Nodejs、Angular 和 MongoDB 为费用管理应用程序构建构建适当的数据库?
- datepicker - Flatpickr 同一页面中的多个日期选择器
- pdf - 不同的pdf对应不同的cmap,如何制作一个全局的cmap,以便处理多个具有相同fontmap的pdf到/toUnicodemap
- python - 如何根据某些条件修改数据框并选择最后 3 行
- elasticsearch - Ambari 沙箱:elasticsearch 端口 9200 无法访问
- save - 在闪亮树中保存和恢复选择
- r - r data.table 过滤器基于满足条件的行数
- python - MEDIAN IF S 使用 Python Pandas 的 groupby
- html - 修复了正文溢出的 CSSGrid 导航栏