从 java 中的内部 class 访问变量
Accesing variable from an inner class in java
我想通过 mouseClicked
方法访问 i
。谁能帮我解决这个问题?
这是我的代码片段 -
for (int i = 0; i < 9; i++) {
JLabel jl = new JLabel(String.valueOf(i));
jl.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
addAnEventToLabel(i); //Error 1
}
});
}
错误 1 - 从内部 class 引用的局部变量必须是最终的或实际上是最终的(显示在 IDE 中)
但没有运行时或编译时异常。
你应该可以做到:
for (int i = 0; i < 9; i++) {
final int tmpI = i;
JLabel jl = new JLabel(String.valueOf(i));
jl.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
addAnEventToLabel(tmpI);
}
});
}
我想通过 mouseClicked
方法访问 i
。谁能帮我解决这个问题?
这是我的代码片段 -
for (int i = 0; i < 9; i++) {
JLabel jl = new JLabel(String.valueOf(i));
jl.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
addAnEventToLabel(i); //Error 1
}
});
}
错误 1 - 从内部 class 引用的局部变量必须是最终的或实际上是最终的(显示在 IDE 中) 但没有运行时或编译时异常。
你应该可以做到:
for (int i = 0; i < 9; i++) {
final int tmpI = i;
JLabel jl = new JLabel(String.valueOf(i));
jl.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
addAnEventToLabel(tmpI);
}
});
}