我有一个java枚举
public enum Month {
JANUARY("01. January")
,FEBRUARY("02. February")
, MARCH("03. March")
, APRIL("04. April")
, MAY("05. May")
, JUNE("06. June")
, JULY("07. July")
, AUGUST("08. August")
, SEPTEMBER("09. September")
, OCTOBER("10. October")
, NOVEMBER("11. November")
, DECEMBER("12. December");
private final String displayName;
Month(final String display)
{
this.displayName = display;
}
@Override public String toString()
{
return this.displayName;
}
};
我还有一个DTO对象
public class SampleDTO {
private int variable1;
private Set<String> monthName;
public int getVariable1() {
return variable1;
}
public void setVariable1(int variable1) {
this.variable1 = variable1;
}
public Set<String> getMonthName() {
return monthName;
}
public void setMonthName(Set<String> monthName) {
this.monthName = monthName;
}
}
最后我有一个带有输入参数的方法作为SampleDTO,有没有办法可以强制将字符串添加到monthName时,它总是来自枚举的有效值。例如,添加&#34; dfkjahdkjfadf&#34;不应该允许到集合
答案 0 :(得分:2)
将Set<String>
更改为Set<Month>
,以便它只能包含Month
枚举实例。确保它是合法月份似乎是合同的一部分,因此您必须在SampleDTO
内强制执行。
答案 1 :(得分:1)
您可能使用Set<Month>
代替Set<String>
,例如:
public class SampleDTO {
. ...
private Set<Month> month;
...
}