为什么listIterator参数在AbstractList的源代码中是最终的?

时间:2016-02-27 14:48:33

标签: java list api

当我查看java API的源代码时,我只是无法理解为什么这个参数应该是final?

    public ListIterator<E> listIterator(final int index) {
    rangeCheckForAdd(index);

    return new ListItr(index);
}

这是AbstractList.Thanks的第324行

1 个答案:

答案 0 :(得分:0)

factory.anotherFunction()表示该方法无法更改参数的值。这主要用作代码内文档/限制,使编译器尝试将其修改为错误。它也可能是编译器和/或JVM用于优化目的的有用信息;例如,他们不必应用静态分析来查看参数是否永远不会改变,您必须强制这样做。当在使用常量值调用方法调用时内联时,这可能是特别有用的信息,例如在listIterator()(没有参数)的实现中,这只是:{{1 }}