java - 如何定义恒定增量计数器
问题描述
如果您有某个表的列列表,并且您在界面中为这些列定义了元数据:
interface tableCol{
String column1 = "col1";
String column2 = "col2";
int col1_pos = 1;
int col2_pos = 2;
}
Col1_pos 的值用于在 UI 中显示。
我们有大约 100 列 && 根据用户要求,位置不断变化。
对于任何列添加/删除,我必须更新硬编码的 counters 。
有没有更好的方法通过使用一些增加价值的整数或供应商来做到这一点?
我知道 Javc/JVM 对指令进行了一些重新排序。所以,我正在寻找一种更好的方法,这样我就不需要对这些计数器值进行硬编码。
解决方案
常见的做法是将这些值放入一个可交互的列表中。因此,不要将单个字段(例如column1
,column2
等)定义为List
. 但是由于每列附加了更多信息(名称和“位置”),您还可以创建一个包含两个字段的列类并将它们存储在一个集合中。
但是由于您只想存储名称和索引,因此可以使用 javaenum
并使用序数方法作为索引,如下所示:
enum Columns {
COL1 ("col1"), //ordinal() = 0
COL2 ("col2"), ; //ordinal() = 1
String name;
public Columns(String name){
this.name = name;
}
}
推荐阅读
- php - php中mysql的两个日期之间的总和
- javascript - 序列化表单并使用标签和段落作为数组中的键
- laravel-5.7 - Laravel db:在控制器上选择
- c - 指针和结构变量
- sql-server - 如何有条件地从不同的表中插入 INSERT INTO?
- sockets - 尝试使用 ws-rs (mio) 连接到 https websocket 时出现“资源暂时不可用”
- psychopy - PsychoPy 使用 KeyList 设置实验
- webpack - Webpack - Babel 错误 - 找不到相对于目录的预设“@babel/env”
- php - 如何添加我自己的操作以在用户下新订单并删除电子邮件操作时触发
- c# - 实例化的预制件不移动