java – for语句中的最终关键字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – for语句中的最终关键字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1152字,纯文字阅读大概需要2分钟。
内容图文
![java – for语句中的最终关键字](/upload/InfoBanner/zyjiaocheng/747/05e82c00de0c47dba71d26a40e2698e7.jpg)
我正在阅读网上发现的一些代码,并在这些行上(java):
private List<String> values;
[...]
for (final String str : values) {
length += context.strlen(str);
}
在for循环中声明变量final有什么好处?我认为for循环中指定的变量已经是只读的(例如,在上面的例子中不能为’str’赋值).
谢谢
解决方法:
What is the advantage of declaring a variable final in a for loop ?
在一小段代码中并不多,但是,如果它有助于避免在循环时更改引用.
例如:
for( String s : values ) {
computeSomething( s );
... a dozen of lines here...
s = s.trim();// or worst s = getOtherString();
... another dozen of line
otherComputation( s );
}
如果不使用final,则最后一行anotherComputation可能使用与迭代中定义的值不同的值,并且可能会引入细微的错误,而在阅读其他代码时,维护者将尝试弄清楚该方法如何失败用正确的值.
对于5到15行的长度来说这很容易被发现,但对于更大的代码段,相信我,要困难得多.
使用final将阻止编译时的值更改.
...
for( final String s : values ) {
s = new StringBuilder( s ).reverse().toString();
}
此代码在编译时失败,可能已经分配了变量s
另一个优点是允许变量在匿名内部类中使用:
for( final String s : value ) {
doSomething( new InnerClass() {
void something() {
s.length();// accesing s from within the inner class
}
});
}
内容总结
以上是互联网集市为您收集整理的java – for语句中的最终关键字全部内容,希望文章能够帮你解决java – for语句中的最终关键字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。