【发布时间】:2011-09-22 08:09:37
【问题描述】:
在 Java 中我有这样的东西
public enum FlatFileHeaderMapping {
HEADER_EL(1),
HEADER_RESERVED1(5),
HEADER_RESERVED2(2),
HEADER_MESSAGE_TYPE(4)
public final int fieldSize;
private FlatFileHeaderMapping(int fieldSize) {
this.fieldSize = fieldSize;
}
}
然后我可以使用它将每一行放入地图中,然后通过此枚举访问地图中的键(如符号)
就我所见,枚举不具备这种品质,并且案例类不像枚举声明那样排序 - 因此不能用于匹配如上所示的记录布局。至少不是没有有序集合的支持。
我可能遗漏了一些明显的东西,因此问题!
谢谢
雷
【问题讨论】:
-
这里还有其他问题有很好的答案:stackoverflow.com/questions/1898932/… 和这里:stackoverflow.com/questions/1321745/…
-
看到到目前为止的答案,我还应该注意到 Java 枚举相对于 case 对象的另一个优势在于它们保留了声明的顺序。如果曾经想要匹配记录的布局,这是一个有趣的属性。必须将 IIANM 案例对象放入链接列表中才能共享该属性。
-
Viktor 给出了迄今为止最好的答案。虽然比 Java 版本更冗长,但更灵活。