【发布时间】:2017-04-22 19:09:14
【问题描述】:
如果只有一个条目,我需要知道在 Set 中获取值的“最佳”和最安全的方法。 methodToGetValues() 广泛用于读取配置文件并返回给定特定键的值列表,在本例中为 "enabled"。对于enabled 键,Set 中应该只返回一个条目,显然是"true" 或"false",但是会发生错误。我有以下看起来有点令人费解的:
Set<String> enabled = methodToGetValues("enabled");
if (!enabled.isEmpty() && enabled.size() < 2 && "true".equals(enabled.iterator().next())) {
...
}
谁能建议一种更简单但仍然可靠的检查方法?
【问题讨论】:
-
为什么你有一个只有一个元素的集合?我只是想知道,因为我觉得这可能是一个 XY 问题。
-
对于其他键,读取配置文件时返回的值是多个,所以Set会有更多的元素。
-
为什么不为这种类型的值写一个新的methodToGetValue呢?
-
你所拥有的看起来不错,但如果你可以使用第三方库 Guava 的
Iterables.getOnlyElement几乎是为这个用例定制的。 -
@LouisWasserman 这正是我所追求的,谢谢。