将Regular Regular Int转换为Final Java
我试图在循环中实现内部类,并进入一个有趣的情况。 内部类有方法,但是,当我尝试访问变量时,Netbeans给了我一个编译器错误并告诉我使int最终。
由于int是循环变量,因此它不能是最终的。 我已经尝试创建新变量并将它们等同于循环变量,但这仍然会引发相同的错误。
这是基本语法(伪代码):
for(int i = 0; i < 10; i++) { panels[i].printI(new printI(){System.out.println(i);}); }
有任何想法吗?
添加临时final
变量以保存值:
for(int i = 0; i < 10; i++) { final int tmp = i; panels[i].printI(new printI(){System.out.println(tmp);}); }
这是成语:
for(int i = 0; i < 10; i++) { final int j = i; panels[i].printI(new printI(){System.out.println(j);}); }
或者使用数组变体,它可以为您节省一行代码;)
for(final int[] i = {0}; i[0] < 10; i[0]++) { panels[i[0]].printI(new printI(){System.out.println(i[0]);}); }
- 合并大文件而不将整个文件加载到内存中?
- spring security:NoSuchBeanDefinitionException:找不到类型的限定bean
- 加载ContextLoaderListener时出现ClassNotFoundException
- 使Java应用程序对用户不可见
- java.lang.NoSuchMethodException:org.hibernate.validator.ClassValidator Seam weblogic 10.3
- Collections.sort()使用比较器?
- hibernate.cfg.xml在运行时修改
- SWT / JFace:删除小部件
- 有效的Java项目#77 – 单例对象的序列化 – 为什么我必须使用readResolve?