我正在尋找一種方法來爲每個枚舉實例定義一個方法。我們都知道這個頁面底部的代碼構造。在單獨的文件中爲每個枚舉定義方法
我正在尋找的區別是能夠爲編譯時驗證的單獨文件中的每個枚舉定義一個或多個抽象方法。意思是如果有人添加另一個枚舉實例,我會得到一個編譯時錯誤,而不是運行時錯誤,這是我在本頁底部的構造中得到的。
請求的原因是,在我看到的一些代碼中,應該爲每個枚舉定義很多方法,但與枚舉定義非常相關,所以我想將它們放在單獨的文件中,但不是失去了解決這個「標準」方式的好處。
public enum MyEnum {
X {
public void calc(Outer o) {
// do something
}
},
Y {
public void calc(Outer o) {
// do something
}
};
// abstract method
abstract void calc(Outer o);
}
不要忘記枚舉的對象,所以如果我翻譯你說的話是:我想定義這個對象定義之外有關對象的一些方法。這絕對是面向對象的反模式。 – benzonico 2013-03-09 15:09:45