【发布时间】:2019-03-13 16:41:27
【问题描述】:
我遇到了这个源代码,并想确保我理解它为什么按原样编写(或者是否应该这样编写):
boolean modified = false;
Set<String> possibleSites = settings.getPossibleSites();
Set<String> visibleSites = settings.getVisibleSites();
modified = someMysteriousMethod();
// Remove sites from visibleSites that are not in possibleSites
modified |= visibleSites.retainAll(possibleSites);
我对 LAST 语句的问题:
为什么要使用位运算符? retainAll() 将返回一个关于发生了什么的布尔值?
运算符/语句在说什么?如果 modified 等于返回值,则保留 modified 的值,或者如果返回值不同,则将修改为该新值?
【问题讨论】:
-
你看retainAll的文档了吗?
标签: java set bitwise-or