0

質問があります。Enum として異なるオブジェクトを持つ複数の静的クラスの Enum 型を定義するにはどうすればよいですか?

例:

public abstract class AbstractClass
{
    public Enum<?> AbstractMethod();
}

public class StaticClass extends AbstractClass
{
    public enum en
    {
        FOO3,
        FOO4
    }

    @Override
    public Enum<en>[] AbstractMethod()
    {
        return en.values();
    }
}

public class StaticClass2 extends AbstractClass
{

    public enum en
    {
        FOO1,
        FOO2
    }

    @Override
    public Enum<en>[] AbstractMethod()
    {
        return en.values();
    }
}

しかし、そのコードはエラーをスローします: The method public boolean AbstractMethod(Enum<ObjectX> en1)dosn't exsist in AbstractClass (X is the Number of the Object)

これを行うと機能しますが、RawTypes 警告がスローされます。

public abstract class AbstractClass
{
    public Enum[] AbstractMethod();
}

public class StaticClass extends AbstractClass
{
    public enum en
    {
        FOO3,
        FOO4
    }

    @Override
    public Enum[] AbstractMethod()
    {
        return en.values();
    }
}

public class StaticClass2 extends AbstractClass
{

    public enum en
    {
        FOO1,
        FOO2
    }

    @Override
    public Enum[] AbstractMethod()
    {
        return en.values();
    }
}
4

1 に答える 1

1

これはあなたが意味するものですか?

列挙:

public enum Fruits {
    APPLE, ORANGE;
}

クラス:

public static abstract class Parent {

    public abstract <E extends Enum<?>> void printEnum(final E e);

}

public static class Child extends Parent {

    @Override
    public <E extends Enum<?>> void printEnum(final E e) {
        System.out.println(e.name());
    }

}

使用法:

new Child().printEnum(Fruits.ORANGE); // Prints ORANGE
于 2012-07-05T03:51:49.450 に答える