final 参数的测试
来源:互联网 发布:mac卸载opera 编辑:程序博客网 时间:2024/06/04 19:53
书中第142页这样解释:
Java允许在参数列表中以声明的方式将参数指明为final。这意味着你 无法在方法中更改参数引用所指向的对象:
此处红色区域;到底是说不能改变这个引用?还是说不能改变引用所指向的对象?还是二者都不可修改?
上代码测试了下;
1.首先可以确定;引用是绝对不允许修改的
2.测试看看引用指向的对象能不能改
- public class Test {
- public static void main(String[] args)
- {
- Info info = new Test().new Info();
- info.setI(10);
- System.out.println(info);
- withFinal(info);
- System.out.println(info);
- }
- public static void withFinal(final Info info)
- {
- info.setI(12);//标记一
- //info = new Info();//标记二
- }
- class Info
- {
- @Override
- public String toString() {
- return "Info:" + i;
- }
- private int i ;
- public void setI(int i)
- {
- this.i = i;
- }
- }
- }
输出:
Info:10
Info:12
可见。final参数引用所指向的对象是可以修改的。
另:
代码中 标记二 处 说明了 final 参数引用本身是不能修改的。编译时错误
ps->以前还真没注意这个细节。这么经典的书对这点的解释也不够精准。呵呵
0 0
- final 参数的测试
- final参数的根本意义
- 关于 final 的参数传递
- final参数
- 方法参数前加final的作用
- 如果方法中参数是final的
- final 来修饰方法参数的原因
- 方法参数前final的含义
- JAVA方法中的参数 final 的误区
- final关键字 修饰参数的作用
- Java中final修饰参数的作用
- Java中final修饰参数的作用
- ListView 里面getView()的参数final来修饰的原因
- final类、函数、参数
- 篡改Java final参数
- JAVA方法中的参数用final来修饰的原因
- Java中final修饰参数的作用之一
- 初始化匿名内部类的参数必须为final类型
- memcpy的实现
- iOS选择头像示例代码
- 嵌入式工程师应该知道的C语言 .
- thumb长跳转指令(BL)机器码详解
- [ATL/WTL]_[中级]_[原生的复选框(checkbox button)和单选按钮(radio button)实现透明背景效果解决方案]
- final 参数的测试
- ubuntu下禁止TeamViewer开机自启分析
- iOS 选择头像后显示到imageView中 纯代码
- java日期和时间
- chapter 9 ICMP
- 多线程之同步和死锁
- scorllView和手势小细节
- 自定义maven工程模板
- 第一周工作报告总结 贺磊