私は、パラメータとして列挙型を渡す必要があるメソッドを持っています。メソッドパラメータを任意の列挙型として宣言する方法
public <T> T doSomething(SomeEnum operation, Class<T> something);
私はいくつか列挙型を持っていると方法は、任意の列挙型で動作するはず一般的なものです。どのような一般的な列挙型を受け入れるためにこのメソッドの署名を書く正しい方法は何ですか?私はこの目的のためにマーカーインターフェイスを使用できることを知っていますが、一般的なenumシグネチャで記述したいと思います。これについて私に助言してください。
これは悪い考え方です:(それは動作しますが、私はIDEから生のタイプであると警告していますが、理由は不明です)。
あなたが行うことができpublic void doSomething(Enum operation);
に何も追加することはできません。この動作例のEnumSetも参照してください。http://docs.oracle.com/javase/1.5.0/docs/api/java/util/EnumSet.html – Zarkonnen
こんにちは、返信ありがとうございますが、署名の問題について再度苦情を言います。私は、私が探している正確な署名を投稿したはずだと申し訳なく思っています。私があなたが言及したものを追加する必要がある既存のメソッドの署名について私の編集を見てください。この場合、メソッドの署名はどのように見えるでしょうか? – popcoder
これはあなたが探しているものですか?またはTと列挙型は別の型にする必要がありますか? –