当我查看CollectionUtils addAll方法的源代码时,我注意到它使用了|=
符号。
public static <T> boolean addAll(Collection<? super T> c, T... elements) {
boolean result = false;
for (T element : elements)
result |= c.add(element);
return result;
}
据我理解,|=
是一个按位或运算符,只是result = result|c.add(element)
的简写,例如:
System.out.println(false|true); //true
System.out.println(false|false); //false
System.out.println(true|false); //true
System.out.println(true|true); //true
这意味着如果任何项目成功添加,它将返回true。 现在我一直在想,会不会有一个例外情况,它会返回false?如果没有,为什么它有一个返回值?
set.addAll(set)
来处理任意的Set<Whatever>
。 - Marko Topolnik