0
関数に列挙CLASSを渡す明確な方法はありますか?列挙をパラメータとして関数に渡すにはどうすればよいですか?
public enum MyEnum implements XYZ {
//enum values
A,
B,
C;
}
public void getEnumeration(final Class<? extends XYZ> myEnum) {
//go through enumeration
for (XYZ xyz : myEnum.getEnumConstants()
System.out.println(xyz.toString());
}
次のように渡された列挙:
はこのような何か考えてみましょう
getFunction(MyEnum.class);
今...上記の作品と私はうまくgetEnumeration()
関数に私の列挙を渡すことができます。しかし、私が渡しているのは実際には列挙型であり、XYZ
を実装するクラスではないことを確認したいと思います。 列挙型はクラスの型ですが、XYZ
を実装する列挙型の代わりにXYZ
を実装するクラスを渡すと、コンパイラがそれを受け取るような強い型の方法がありますか?
グレート、私は「&」テンプレートで使用することができます知らなかった:
は、ここで私は私の概念をテストするために書いた実際の例です。 ..今、あなたのアイデアを自分のコードで試してみて、質問があります。私は渡された列をクラスに格納する必要があります。私の変数は次のようになります: 'private myVar Class <? Enum <? XYZ >> 'を拡張しますか?変数にテンプレートを使用する方法がわかりません... – Ayyoudyそのタイプのクラスをパラメータ化します。例えば、 'public class MyClass&XYZ>'です。それから 'private class myVar;'を使ってください。 –
いいですね。ありがとう – Ayyoudy