匿名内部类可以访问外部方法的变量
//初始化按钮的监听器
public void initListener(Button btn ){
final int name = 12; //必须标记为final
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn.setText(name); //动态改变按钮的文字
}
});
}
外部方法出栈后,内部类在内存中依然存在,但是无法再访问到局部变量
为此,JAVA 将外部方法的变量复制并传递给内部类
匿名内部类修改这个变量的值,但是和外部的变量已经没有关系
也是说无法修改外部方法的变量的值
为此,直接使用 final 将外部变量的值约定死
点击查看更多内容
3人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦