1
我各有一個枚舉的月,季,和halfyear如何使一個枚舉項目具有另一個枚舉的項目?
public enum Month implements TimeInterval {
// JAN,FEB,MAR... (all with params & constructors)
// implementation not important
}
public enum Quarter implements TimeInterval {
// Q1, Q2 ... (all with params & constructors)
// implementation not important
}
public enum HalfYear implements TimeInterval {
// HY1, HY2 (all with params & constructors)
// implementation not important
}
,並用功能getIntervalByMonth(int)
,我不知道如何實現一個枚舉。
public enum TimeIntervalUnit {
MONTH(/* params */),
QUARTER(/* params */),
HALF_YEAR(/* params */);
public TimeInterval getIntervalByMonth(int month) {
// !!! should return the correct TimeInterval,
// for example TimeIntervalUnit.QUARTER.getIntervalByMonth(1)
// should return Quarter.Q1
}
// some other methods
}
我經常遍歷TimeIntervalUnit.values()
,而循環中我想使用的功能getIntervalByMonth(int)
。我怎樣才能實現這個?或者這可以重構?
眼看'月/季度的代碼/ HalfYear'枚舉將有助於爲有幾個這樣的方式可以來達到的。 –
除非你確實需要一個枚舉,否則我會去找一個可以處理這個函數的簡單類。一個類的優點是你可以將枚舉賦給一個私有變量,併爲你的'getIntervalByMonth(int month)'方法檢查這個變量 – bas
@AdrianJandl不,我想返回一個枚舉'Month'或'Quarter來自Enum'TimeIntervalUnit'項目的''或'HalfYear'。 –