我遇到了这个源代码,并想确保我理解它为什么按原样编写(或者是否应该这样):
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 的值,或者如果返回值不同,则设置为该新值?