java匿名内部类参数为final的解释

来源:互联网 发布:centos opensuse 编辑:程序博客网 时间:2024/05/16 04:54

final关键字

java语法中被final修饰的变量为不可修改。
1、变量为基础类型,表示变量的值不可改变;
2、变量为引用类型,表示变量存储的对象的引用不能改变,换句话说,不能改变指向的是哪个对象。而对象自身是可以改变的。

内部类 访问final参数的解释

匿名内部类放置在方法作用域内。作为方法参数的变量的作用域也是整个方法域。方法结束,变量也将变得不可访问。但生成的内部类的对象却依然存在与堆内存中,并且可以通过方法返回的引用访问该对象。这就导致了内部类无法访问作为参数传入方法的变量。java的实现是,内部类对象copy了一份变量,作为内部类对象的私有的成员(是我猜测的,没用证实)。但是在方法中,需要确保内部类操作的变量和方法域之内,内部类之外的变量操作的一致性。需要将参数声明为fianl,防止在整个方法域中对变量的修改。

0 0
原创粉丝点击