本帖最后由 陈鑫 于 2012-8-20 23:34 编辑
public void method(final StringBuffer param)
{
}
这种方式没有问题啊,当函数参数为final类型时,你可以读取使用该参数,但是无法改变该参数的值。
final修饰的变量是不可变的,即不可被重新赋值
而其变量引用的对象中的数据是可变的- public class TestFinal {
- final Exam exam = new Exam();
- public static void main(String[] args) {
- TestFinal t = new TestFinal();
- //final修饰的变量是不可变的,即不可被重新赋值
- //而其变量引用的对象中的数据是可变的,下面就成功对对象exam中的a属性重新赋值
- t.exam.setA("a");
- System.out.println(t.exam.getA());
-
- //下面注释起来的这句就报错,因为被final修饰的变量不可被重新赋值
- //t.exam = new Exam();
- }
- }
- class Exam{
- private String a;
- public String getA() {
- return a;
- }
- public void setA(String a) {
- this.a = a;
- }
-
- }
复制代码 |