【发布时间】:2021-05-26 19:13:41
【问题描述】:
我有一张地图,其中存储了一组问题和答案。不能有空答案的问题或空问题的答案。下面是我如何初始化我的地图。
Optional<Map<String, String>> questionsAndAnswers();
我正在通过以下方式验证问题/答案的空字符串。
questionsAndAnswers().ifPresent(questionsAndAnswers -> {
if (questionsAndAnswers.isEmpty()) {
throw new IllegalArgumentException("questions cannot be empty if present");
} else if (questionsAndAnswers.keySet().contains("") || questionsAndAnswers.values().contains("")) {
throw new IllegalArgumentException("Questions or answers cannot be empty");
}
});
有没有更好的方法来实现这一点?任何建议将不胜感激。
更新:我没有特别需要在两个不同的条件下完成这些检查。
【问题讨论】:
-
您可以不首先存储空的问题/答案。我知道我要偏离正题了。我只是想确认一下。
-
这是一个库包的一部分,我会将这里收集的数据传递给另一个 API。所以我想确保我最终不会将任何空问题或答案传递给该 API :)
-
所以空地图是个问题,但是空的可选项,根本不包含地图,可以吗?为什么这个方法返回一个可选项?
-
此地图包含问题和答案。不传递它们很好,在这种情况下,我将使用默认值。但是,如果用户决定提供自己的一组问题和答案,他们不应该将任何问题或答案留空。希望这是有道理的
标签: java java-8 maps optional is-empty