以下の擬似コードで説明されているコンセプトを使用して特定のEnumにStringが含まれているかどうかを確認できます(私の例ではEnum
のメソッドはありません) :私は列挙型クラスは、私がチェックする必要がありますを知っている必要があるためJavaのパラメータとしてEnum型の値を渡します
Enum Animal {
Dog,
Cat,
Human
}
public boolean CheckAnimalValid(String name){
return Animal.contains(name)? true : false;
}
は、しかし、以前のように私は、各列挙クラスをCheckValidメソッドを実装する必要があります。私は、どのタイプ(またはキーワードを知りたい
Enum Animal {
Dog,
Cat,
Person
}
Enum Plant {
Grass,
Flower,
Tree
}
public boolean CheckEnumValid(String name, what_should_I_do? enum){
return enum.contains(name)? true : false;
}
:私が知りたい
が、私はこの方法で行うことができるように、関数のパラメータとして列挙型を渡すために任意の方法があります)私はwhat_should_I_doで使用する必要がありますか?前のコードの。私はジェネリックスを使うべきだと知っていますが、どうやって行うのか分かりません。ありがとう!
私はまったく書きません。私は 'Enum.valueOf(Class enumType、String name)'を直接使用します。 NBあなたがそれをあなた自身に置かない限り、 'Enum'に' contains() 'メソッドはありません。 –
EJP
@ EJPご助言ありがとうございます。あなたは正しく、 'valueOf()'は私が必要とするものをほぼ達成することができます。しかし、私はまだジェネリックを使ってそれを達成する方法を知りたいです。私は 'public>'を試してみましたが、コンパイルできましたが、どのように関数を呼び出すのか分かりません。 'CheckValid(" test "、Plant);または' CheckValid( "test"、Plant.class); 'を使用することはできません。 –
Alanight
'Enum.valueOf(Class enumType、String name)' *すでに*ジェネリックで実現しています。あなたは何も必要ありません。 –
EJP