如果我有这样的方法:

public Object getObject(int i) {
    if (i >= 0 && i < objectList.size()) {
        return objectList.get(i);
    } else {
        return
    }
}


这是处理数组索引超出范围错误的最好方法,我应该在else语句null中返回什么?

最佳答案

这个问题没有绝对的答案,它取决于很多事情。但是,如果null不是合法值,我将返回null,如果它是合法值,我将throw视为异常。

/**
 * ...
 * @return The element at index i, null if out of bounds.
 */
public Object getObject(int i) {
    if (i >= 0 && i < objectList.size()) {
        return objectList.get(i);
    } else {
        return null;
    }
}


或者null是否合法:

public Object getObject(int i) throw IndexOutOfBoundsException {
    if (i >= 0 && i < objectList.size()) {
        return objectList.get(i);
    } else {
        throw new IndexOutOfBoundsException();
    }
}

10-08 02:00