当我查看java API的源代码时,我就是不明白为什么这个参数应该是final的?
public ListIterator<E> listIterator(final int index) {
rangeCheckForAdd(index);
return new ListItr(index);
}
这是 AbstractList 的第 324 行。谢谢
最佳答案
final
表示该方法不能更改参数的值。这主要用作代码内文档/限制,使编译器将修改它的尝试转变为错误。对于编译器和/或 JVM 来说,出于优化目的,它也可能是有用的信息;例如,他们不必应用静态分析来查看参数是否从未改变,你已经强制这是真的。当使用常量值调用方法调用时,例如在 listIterator()
的实现中,这可能是特别有用的信息。 (不带参数),简单来说就是:return listIterator(0);
。
关于java - 为什么AbstractList的源代码中listIterator参数应该是final的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35671157/