0
4

1 回答 1

0

我相信字符串替换只是toString()根据我的经验调用的。尽管如果您只想使用枚举指定要排序的列,您实际上并不需要类型处理程序。让枚举名称与可能的列名匹配应该可以工作。或者,如果您希望代码中的名称更具可读性,您可以覆盖枚举toString()以返回实际的列名。

前段时间我想使用枚举进行排序,由于${}只是调用toString(),我只是覆盖了返回列名的方法,并将枚举放入替换中,而不使用任何类型处理程序。

这非常简单,但为了完整起见,这基本上就是我所做的。

public class Constants {
  public enum SortFields {
    REQUEST_DATE("REQ_DT"), ID_NUMBER("ID"), MEMBER_NAME("MEM_NM");

    private final String columnName;

    SortFields(String columnName) {
      this.columnName = columnName;
    }

    public String getColumnName() {
      return columnName;
    }

    public boolean equalsColumnName(String comparedColumnName) {
      return columnName.equals(comparedColumnName);
    }

    @Override
    public String toString() {
      return columnName;
    }
  }
}

并且只是将枚举传递给${}. 如果枚举名称只是列名而不是拼写出来,则toString()可能不需要覆盖。

于 2021-11-14T17:33:05.757 回答