加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 在增强型for循环中为循环变量使用final的目的是什么?

发布时间:2020-12-14 05:32:47 所属栏目:Java 来源:网络整理
导读:我明白下面的声明如何工作. for(final Animal animal : animalList){//do some function} 但是在这里使用final关键字的目的是什么? 解决方法 这样做有两个可能的原因: 它可以简单地避免在循环体中意外地改变循环变量. (或者记录循环变量不会被改变的事实)
我明白下面的声明如何工作.
for(final Animal animal : animalList){
//do some function
}

但是在这里使用final关键字的目的是什么?

解决方法

这样做有两个可能的原因:

>它可以简单地避免在循环体中意外地改变循环变量. (或者记录循环变量不会被改变的事实)
>可以这样做,以便您可以在匿名内部类中引用循环变量.例如:

for(final Animal animal : animalList){
    executor.submit(new Runnable(){
        public void run() {
            animal.feed();
        }
    });
}

如果在这个例子中省略了最后的内容,这是一个编译错误.

更新它不是Java 8和更高版本中的编译错误.非局部变量现在只需要有效地进行最终化.简单来说,这意味着在初始声明/初始化之后,该变量没有分配给(使用赋值运算符或前/后递增或递减运算符).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读