- 557 名前:デフォルトの名無しさん mailto:sage [2013/07/04(木) 15:29:12.90 ]
- abstractメソッドの引数にenumを与えたい、ただしどのenumクラスを使うかは
継承先に決めさせたい場合は普通にGenericsを使うかなぁ。 public abstract class AbstractSample<E extends Enum<E>> { public abstract void sampleMethod(E item); protected abstract Class<E> getEnumClass(); public void sampleMethod(String name){ sampleMethod(Enum.valueOf(getEnumClass(), name)); } public class Sample extends AbstractSample<Sample.MyEnum>{ public enum MyEnum{enum1, enum2, enum3} @Override protected Class<MyEnum> getEnumClass() {return MyEnum.class;} @Override public void sampleMethod(MyEnum item) {... getEnumClassは任意だけれども上記のようにString版のメソッドの実装も抽象 クラスで与えたいときなど便利。 > そしてenumの中身は継承先々で用意したいが、名は統一したい 「名は統一したい」というのがSample.MyEnumのように継承クラスでは必ず MyEnumというenumクラスを内部クラスとして宣言する、ということを強制する という意味なら多分無理。
|

|