首页 > 解决方案 > 如何定义恒定增量计数器

问题描述

如果您有某个表的列列表,并且您在界面中为这些列定义了元数据:

interface tableCol{
  String column1 = "col1";
  String column2 = "col2";
  int col1_pos = 1;
  int col2_pos = 2;
}

Col1_pos 的值用于在 UI 中显示。

我们有大约 100 列 && 根据用户要求,位置不断变化。

对于任何列添加/删除,我必须更新硬编码的 counters 。

有没有更好的方法通过使用一些增加价值的整数或供应商来做到这一点?

我知道 Javc/JVM 对指令进行了一些重新排序。所以,我正在寻找一种更好的方法,这样我就不需要对这些计数器值进行硬编码。

标签: javainterface

解决方案


常见的做法是将这些值放入一个可交互的列表中。因此,不要将单个字段(例如column1,column2等)定义为List. 但是由于每列附加了更多信息(名称和“位置”),您还可以创建一个包含两个字段的列类并将它们存储在一个集合中。

但是由于您只想存储名称和索引,因此可以使用 javaenum并使用序数方法作为索引,如下所示:

enum Columns {
  COL1 ("col1"),    //ordinal() = 0
  COL2 ("col2"), ;  //ordinal() = 1

  String name;
  public Columns(String name){
    this.name = name;
  }
}

推荐阅读