偶然间看到 java.util 包下的 Set 接口,看着好搞笑哈哈哈哈哈哈哈
包括了如下几个方法:
- 创建包含0个元素的不可修改的Set集合
- 创建包含1个元素的不可修改的Set集合
- 创建包含2个元素的不可修改的Set集合
- 创建包含3个元素的不可修改的Set集合
- 创建包含4个元素的不可修改的Set集合
- 创建包含5个元素的不可修改的Set集合
- 创建包含6个元素的不可修改的Set集合
- 创建包含7个元素的不可修改的Set集合
- 创建包含8个元素的不可修改的Set集合
- 创建包含9个元素的不可修改的Set集合
- 创建包含10个元素的不可修改的Set集合
- 创建包含任意个元素的不可修改的Set集合
这些方法看起来是不是特别灵性
不过这些方法还是比较实用的(虽然我没用过)。举个例子,SpringBoot中将String转换为Boolean值的Converter类,就用到了上面的of()方法:
final class StringToBooleanConverter implements Converter<String, Boolean> {
private static final Set<String> trueValues = Set.of("true", "on", "yes", "1");
private static final Set<String> falseValues = Set.of("false", "off", "no", "0");
@Override
@Nullable
public Boolean convert(String source) {
String value = source.trim();
if (value.isEmpty()) {
return null;
}
value = value.toLowerCase();
if (trueValues.contains(value)) {
return Boolean.TRUE;
}
else if (falseValues.contains(value)) {
return Boolean.FALSE;
}
else {
throw new IllegalArgumentException("Invalid boolean value '" + source + "'");
}
}
}