私たちのプロジェクトのいたるところに、この種の列挙型があります。彼らはうまく動作しますが、私たちはそれらについては分かりません。は私の列挙は正しいですか?
特にgetDocumentType(String)メソッドを使用しています。
すべてのEnumsフィールドで反復を避ける方法はありますか?
public enum DocumentType {
UNKNOWN("Unknown"),
ANY("Any"),
ASSET(Asset.class.getSimpleName()),
MEDIA(Media.class.getSimpleName()),
MEDIA35MM(Media.class.getSimpleName() + " 35mm");
private String label;
private DocumentType(String label) {
this.label = label;
}
public String getLabel() {
return label;
}
public static DocumentType getDocumentType(String label){
for(DocumentType documentType : DocumentType.values()){
if(documentType.getLabel().equals(label)){
return documentType;
}
}
return UNKNOWN;
}
}
編集: newacctレスポンスを確認してください。彼女も大丈夫です。
静的なラベルのマップを列挙型インスタンスに格納するのは魅力的ですが、残念ながら、javaでは列挙型のコンストラクタから静的フィールドを参照させることはできません。 – skaffman
"Asset"を書くのではなく、なぜAsset.class.getSimpleName()を使用するのだろうか?リファクタリングで名前を変更する予定ですか? – akarnokd
文字列ではなくクラスリテラルを使用することは常に良い習慣なので、 – skaffman