8

Enum.valueOf()valueOf具象型の別の静的メソッドで非表示にすることはできませんがEnum、テキスト ファイルからのリフレクションを使用してオブジェクトを作成しているため、valueOf.

現在、私Enumの静的クラスがありますfromString()

public enum Fruits {

   APPLE, ORANGE, ...;

    public static Fruit fromString(String fruit) {
        ...
    }
}

しかし、enum フィールド タイプを処理しているときに適切なメソッドを呼び出すようなメソッドをどのようにインターフェイスできるのでしょうか? 私が考えることができる唯一のことは次のとおりです。

  • マーカー インターフェイスの使用
  • すべての列挙型にこの静的メソッドを実装します
  • リフレクションを介して静的メソッドを呼び出す

この制限を強制する別の代替手段はありますか?

4

2 に答える 2

2

fromString私の理解が正しければ、ユニークな方法で統合したい多数の個別の列挙型があるでしょう。私が行ったことは、すべての列挙メンバーを単一に蓄積する別のクラスを作成することでstatic final Mapあり、fromStringメソッドはそれに関して実装されます。

問題の正確な列挙型に関係なく呼び出す必要があるカスタム メソッドが多数あるため、私の場合、すべての列挙型は共通のインターフェイスを実装します。

于 2012-08-20T10:32:56.687 に答える
-2

確かに、それは組み込みです:use Enum#valueOf(Class<T> enumType, String name)

于 2012-08-20T10:30:59.483 に答える