我的枚舉出現問題。我需要基於枚舉值調用不同的函數,我可以基於開關大小來做到這一點,但它不是我的情況下的解決方案。我有大約50個值。所以我想要做的是將枚舉構造函數中的每個函數與動態運行時值進行傳遞。下面是一些示例代碼片段,使其更加清晰。將論證方法作爲參數枚舉
public enum TestEnum {
TEST_ENUM1("1", TestUtil.one(name)),
TEST_ENUM2("2", TestUtil.two(name));
private String display;
private Runnable function;
private static String name;
TestEnum(String number,Runnable function){
this.display = number;
this.function = function;
}
public String getDisplay() {
return display;
}
public Runnable getFunction() {
return function;
}
}
和執行該我需要遍歷枚舉薄和呼叫與名稱字段動態值中的每個方法。
for (TestEnum enumv : TestEnum.values()) {
enumv.getFunstion.execute();
}
如果是的話,是否可以達到同樣的效果請讓我知道最好的方法。謝謝
我不明白你的問題是什麼。你的代碼應該做什麼,它做什麼呢? –
如果你想運行時值,不會傳遞runnable,在執行方法中創建接受參數的自己的接口 – AdamSkywalker
在這種情況下,你可以使用多態。看看[這裏](http://stackoverflow.com/a/126455/6348498)。這將更容易維護和滿足您的要求 – GurV