我可以強制子類在其中創建枚舉嗎?強制子類聲明枚舉
class Document<T extends Enum<T>>{
Map<T, String> fields;
}
class TextDocument extends Document<TextDocument.Field>{
public enum Field{
...
}
}
如何強制執行Document的任何實現以在其中包含一個名爲Field的枚舉?在上面的例子中,TextDocument可以擴展Document以及其他一些枚舉(比如GraphDocument.Field),這也不應該被允許。我如何創建這個限制?我需要將此規則強制實施爲子類 - 「您必須擁有自己的枚舉」。這甚至有可能嗎?通過一些黑客的方式?有任何想法嗎?
您可以使用反射 – msrd0 2014-10-11 12:40:04
您可以舉一個小例子嗎? – 2014-11-19 09:44:12
嘗試加載另一個類的枚舉(通過調用getClass()。getXxx')並且如果沒有發現拋出異常 – msrd0 2014-11-19 14:29:16