java - 将常规 Int 转换为最终 Java

标签 java inner-classes

<分区>

我试图在一个循环中实现一个内部类,并且遇到了一个有趣的情况。内部类有方法,但是,当我尝试访问该变量时,Netbeans 给我一个编译器错误并告诉我将 int 设置为 final。

由于 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);});
}

关于java - 将常规 Int 转换为最终 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157842/

相关文章:

java - 从不使用公共(public)嵌套枚举?

java - 访问非静态嵌套类

java - 访问匿名内部类中的非最终值

java - Java 中 Mac 上的 JTable 中的 JTooltip 在单击时不会选择该行

java - Eclipse 中未找到继承方法

java - zk Controller 中的有线变量为空

java - 静态内部类的序列化

java - OuterClass.this.someMethod() 背后的基本原理是什么?

java - 在 Spring 中创建自定义查询

java - 在 Java 中处理下载