最近在看spring 源码深度解析 看到了许多方法中的参数被final修饰符修饰 什么作用自己蒙了 难道在方法中不允许修改参数么
网上查了查 恍然大悟
final类型修饰的参数分为两种类型 基本类型 与引用类型
final修饰基本类型如下
<span style="white-space:pre"> </span>public void getValue(final int a){
<span style="white-space:pre"> </span>....
<span style="white-space:pre"> </span>}
如果在方法中修改上述方法的参数则会报错如下图
final 修饰引用类型
public void getValue(final Integer a){
.........
}
相同的 如果修改所引用的对象也是会提示上述错误的
但是换种方式
public void getValue(final Contract c){
c.hourSpanName="aa";
}
就没有任何问题
我总结了下 1、在调用的参数内部 无论是基本类型还是引用类型 其值不可改变(引用类型指的引用对象不变)
2、引用类型中属性可变
3、