final修改变量与匿名内部类调用时候冲突详解编程语言
2023-06-13 09:11:50 时间
对于普通变量来说是不可更改的,但是对引用类型来说堆内存中的地址不可变,但是引用类型的值是可以变得;
特殊情况下(完全可以通过其他方式解决,这里只是举个例子):某个局部变量在匿名内部类中调用,那么这个变量就需要生命成final的,但是又必须初始化;
int score = 0;//这里报错,因为score在内部类中调用,必须声明称final而且必须初始化 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { score++; });
修改后如下:通过引用类型解决,引用地址不变,但是指向的内容不变
final int[] score = { 0}; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { score[0]++; });
仅此记录问题,场景意义不大
18732.html
cjavaxml相关文章
- 小白的Python之路 day1 变量详解编程语言
- python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环详解编程语言
- Java实例变量和类变量详解编程语言
- java中成员变量与局部变量的区别详解编程语言
- java多线程系列(二)—对象变量并发访问详解编程语言
- 成员变量与局部变量的区别详解编程语言
- Python私有变量详解编程语言
- javascript中变量提升的问题详解编程语言
- C语言_指针变量的赋值与运算,很详细详解编程语言
- java中怎么判断变量是不是String类型的详解编程语言
- C语言中char变量详解编程语言
- smartforms中间的字段变量, 有些特殊的输出详解编程语言