【发布时间】:2023-03-22 04:22:01
【问题描述】:
我有一个枚举类,用户可以从中选择最多 2 个选项。 如果他选择超过 2 个,则应显示错误消息。
我想使用 Java 流来做到这一点。我仍在试图弄清楚它们是如何工作的。
到目前为止,我想出了这段代码:
public enum UserSkills {
HARD_WORKNG("HARD_WORKNG"),
ON_TIME("ON_TIME"),
HONEST("HONEST");
public final String value;
UserSkills(String value) {
this.value = value;
}
@Override
public String toString() {
return name() + "[" + value + "]";
}
public static List < UserSkills > of (String userSkills) {
notNull(userSkills, "userSkills cannot be null");
return Arrays.stream(values())
.flatMap(s - > {
if (values().length > 3) {
throw new IllegalArgumentException(String.format("you can only choose up to 3 user skills", userSkills));
} else {
}
}).collect(Collectors.toList());
}
}
我不知道如何完成它任何建议表示赞赏。
【问题讨论】:
-
为什么要为此使用流?不这样做似乎要简单得多。
-
好的,你有什么想法?
-
这一切都取决于你的程序。而且,在枚举本身中进行用户输入验证似乎有点奇怪,因为这似乎违反了“单一责任规则”