我有一个问题。 如何为具有不同对象的多个静态类定义枚举类型为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();
}
}
但是该代码会抛出错误:
方法public boolean AbstractMethod(Enum<ObjectX> en1)
dosn在AbstractClass中存在(X是对象的数量)
这样做有效,但会抛出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();
}
}
答案 0 :(得分: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