Intellij Idea:违反合同条款 'null -> fail'
Intellij Idea: Contract clause 'null -> fail' is violated
我在 Intellij IDEA 14 中收到此警告,但我不太明白它的含义。
public class SubArray {
private final int[] array;
private final int left;
private final int right;
private final int sum;
public SubArray(int[] array, int left, int right) {
this.array = array;
this.left = left;
this.right = right;
int s = 0;
for (int i = left; i <= right; i++) {
s += array[i];
}
sum = s;
}
public int[] getArray() {
return array;
}
public int getLeft() {
return left;
}
public int getRight() {
return right;
}
public int getSum() {
return sum;
}
}
public static SubArray returnMax(SubArray ... subArrays) {
if (subArrays == null || subArrays.length == 0) {
throw new RuntimeException("No sub arrays provided");
}
SubArray max = subArrays[0];
for (int i = 1; i < subArrays.length; i++) {
if (subArrays[i].getSum() > max.getSum()) {
max = subArrays[i];
}
}
return max;
}
第return max;
行发出警告。
我检查 subArrays 是 null 还是空的。我想这应该够了。
数组可以设置 null
个元素,您只检查 subArrays
是否为 null
。您还应该检查 subArrays[0]
和 subArrays[i]
是否。
这只是一个错误 (https://youtrack.jetbrains.com/issue/IDEA-136079), which will be fixed in version 14.1. Sorry for that. You can use the EAP version (https://confluence.jetbrains.com/display/IDEADEV/IDEA+14.1+EAP),或者只是在出现警告时通过 Alt+Enter 暂时禁用此检查。
我在 Intellij IDEA 14 中收到此警告,但我不太明白它的含义。
public class SubArray {
private final int[] array;
private final int left;
private final int right;
private final int sum;
public SubArray(int[] array, int left, int right) {
this.array = array;
this.left = left;
this.right = right;
int s = 0;
for (int i = left; i <= right; i++) {
s += array[i];
}
sum = s;
}
public int[] getArray() {
return array;
}
public int getLeft() {
return left;
}
public int getRight() {
return right;
}
public int getSum() {
return sum;
}
}
public static SubArray returnMax(SubArray ... subArrays) {
if (subArrays == null || subArrays.length == 0) {
throw new RuntimeException("No sub arrays provided");
}
SubArray max = subArrays[0];
for (int i = 1; i < subArrays.length; i++) {
if (subArrays[i].getSum() > max.getSum()) {
max = subArrays[i];
}
}
return max;
}
第return max;
行发出警告。
我检查 subArrays 是 null 还是空的。我想这应该够了。
数组可以设置 null
个元素,您只检查 subArrays
是否为 null
。您还应该检查 subArrays[0]
和 subArrays[i]
是否。
这只是一个错误 (https://youtrack.jetbrains.com/issue/IDEA-136079), which will be fixed in version 14.1. Sorry for that. You can use the EAP version (https://confluence.jetbrains.com/display/IDEADEV/IDEA+14.1+EAP),或者只是在出现警告时通过 Alt+Enter 暂时禁用此检查。