我面临一个关于从abstract返回enum的方法的问题。
我需要扩展的com.fasterxml.jackson库中的抽象类。
public abstract class JsonSchema
{
public abstract JsonFormatTypes getType();
}
JsonFormatTypes是枚举:
public enum JsonFormatTypes
{
STRING,
NUMBER,
INTEGER,
BOOLEAN,
OBJECT,
ARRAY,
NULL,
ANY;
}
现在我想为SwitchSchema和JsonFormatTypes扩展JsonSchema clas,使其类型为“SWITCH”
public class SwitchSchema extends JsonSchema
{
@Override
public JsonFormatTypes getType(){
return JsonFormatTypes.SWITCH;
}
}
现在我的问题是如何将JsonFormatTypes枚举扩展为“SWITCH”并在重写方法中使用它?
答案 0 :(得分:4)
您无法扩展enum
。
来自docs:
所有枚举隐式扩展
java.lang.Enum
。因为一个类只能扩展一个父类(参见Declaring Classes),所以Java语言不支持多重继承状态(参见Multiple Inheritance of State, Implementation, and Type),因此枚举不能扩展其他内容。
尽管有一些在线文献(例如here),但JSON目前不支持switch
语句,因此我认为JsonFormatTypes
(来自Jackson)是正常的是的,你可能不想以任何不同的方式使用它。
如果您正在尝试为JSON格式制定新规范,那么最好使用自己的解析器而不是依赖第三方。