我想强制Java中的枚举实现,但我发现我做不到。 所以我决定定义一个抽象函数来返回子类的枚举。但不知道该怎么做。如何从Java自己的类中返回类的枚举?
下面是代码:
EnumInterface
public interface EnumInterface
{
public String getString();
}
父类
public abstract class ParentClass {
public abstract Enum<?> getEnums();
}
ChildClass
public class ChildClass extends ParentClass{
public enum EnumImplementation implements EnumInterface
{
FOO("foo"),
BAR("bar");
String string;
EnumImplementation(String field)
{
this.string = string;
}
@Override
public String getString() {
return string;
}
}
@Override
public Enum<?> getEnums() {
return ?;
}
}
上面的代码不工作,我只是想来形容我的问题。 如果可能,我也想强制枚举返回类型为EnumInterface
。 如果您知道如何强制执行特定的枚举实现,那么更好,因为我甚至不需要在ParentClass
中定义函数。
那么,如何返回枚举以便我可以这样做instanceOfParentClass.getEnums().FOO
?
为什么你想这样做/什么是你想达到什么目的?有可能是更好的方法... –
我想使用它们来映射属性名称到数据库字段 – William
@TimB我想用它们将类属性名称映射到数据库字段名称。我想迫使开发人员准备它们之间的接口。有时我想使用枚举来定义在UI上显示哪个属性。枚举使我能够轻松定义要使用的属性并将它们传递给其他类,如下所示:'Class.Attribute.NAME'。你有更好的解决方案吗? – William