アイテムシーケンスメソッドではなくインスタンスフィールドの使用
アイテムシーケンスメソッドではなくインスタンスフィールドの使用のほとんどの列挙型定数は、整数値に順次対応する. すべての列挙タイプは、その列挙タイプの定数の数番目のビットを返す方法を提供する. シーケンスを誤って使用した例-真似しないで!定数宣言の順序を変えた瞬間、数字OfMusiciansが誤動作します. 使用済み整数の値と同じ定数を追加できません.また、価格は半額ではありません. シーケンスを使用しないでください.に接続された列挙タイプ定数の値は、シーケンス法では得られず、インスタンスフィールドに保存されます.
「ほとんどのプログラマはこのメソッドを使用する必要はありません.このメソッドは、EnumSetやEnumMapなどの列挙タイプに基づく汎用データ構造に使用することを目的としています.」
すなわち,上記の用途でなければ,決して序数法を用いない.
public enum Ensemble {
SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SEPTET, OCTET, NONET, DECTET;
public int numberOfMusicians() {
return ordinal() + 1;
}
}
public enum Ensemble {
SOLO(1),
DUET(2),
TRIO(3),
QUARTET(4),
QUINTET(5),
SEXTET(6),
SEPTET(7),
OCTET(8),
DOUBLE_QUARTET(8),
NONET(9),
DECTET(10),
TRIPLE_QUARTET(12);
private final int numberOfMusicians;
Ensemble(int numberOfMusicians) {
this.numberOfMusicians = numberOfMusicians;
}
public int numberOfMusicians() {
return numberOfMusicians;
}
}
EnumのAPIドキュメントにはこう書かれているそうです.「ほとんどのプログラマはこのメソッドを使用する必要はありません.このメソッドは、EnumSetやEnumMapなどの列挙タイプに基づく汎用データ構造に使用することを目的としています.」
すなわち,上記の用途でなければ,決して序数法を用いない.
Reference
この問題について(アイテムシーケンスメソッドではなくインスタンスフィールドの使用), 我々は、より多くの情報をここで見つけました https://velog.io/@banjjoknim/아이템-35.-ordinal-메서드-대신-인스턴스-필드를-사용하라テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol