私は次のコードを持っています
import java.util.Arrays;
public class CustomEnum {
//?? varName;
public <E extends Enum<E>> CustomEnum(Class<E> enumClass) {
System.out.println(Arrays.toString(enumClass.getEnumConstants()));
//?? varName = enumClass;
}
}
public enum Mode {
SAMPLE_A,
SAMPLE_B,
SAMPLE_C,
SAMPLE_D
}
そして私はそれをこのように呼ぶことができます
public static void main(String[] args) {
CustomEnum customEnum = new CustomEnum(Mode.class);
}
コード出力
[SAMPLE_A, SAMPLE_B, SAMPLE_C, SAMPLE_D]
私がやりたいのはenumClass
、変数に値を割り当ててコンストラクターで割り当てることですが、変数がどのタイプであるかわかりません。複数の方法で試しましたが、コンパイルエラーが発生します。これは可能ですか?
上記が不可能な場合、どのように私は、ジェネリック型変換することができE[]
によって返されるgetEnumConstants()
にはString[]
?
コンストラクターだけでなく、クラス全体をジェネリックにします。
public class CustomEnum<E extends Enum<E>> {
private E[] constants;
public CustomEnum(Class<E> enumClass) {
constants = enumClass.getEnumConstants();
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加