// Method: transfer , line: 2463
if (i < 0 || i >= n || i + n >= nextn) {
int sc;
if (finishing) {
nextTable = null;
table = nextTab;
sizeCtl = (n >> 1);
return;
}
if (U.compareAndSetInt(this, SIZECTL, sc = sizeCtl, sc - 1)) {
if ((sc - 2) != resizeStamp(n) = n, я не могу придумать особый случай; такое ощущение, что этого не может быть.
[*]Условие 3: i + n >= nextn — то же самое.
[/list]
Являются ли условия 2 и 3 защитным программированием?
Подробнее здесь: [url]https://stackoverflow.com/questions/79842774/the-purpose-of-an-if-statement-condition-it-is-java21-concurrenthashmap-transfe[/url]
Следующий код взят из исходного кода класса java.util.concurrent.ConcurrentHashMap. [code]// Method: transfer , line: 2463 if (i < 0 || i >= n || i + n >= nextn) { int sc; if (finishing) { nextTable = null; table = nextTab; sizeCtl = (n >> 1); return; } if (U.compareAndSetInt(this, SIZECTL, sc = sizeCtl, sc - 1)) { if ((sc - 2) != resizeStamp(n) = n, я не могу придумать особый случай; такое ощущение, что этого не может быть. [*]Условие 3: i + n >= nextn — то же самое. [/list] Являются ли условия 2 и 3 защитным программированием?