What to do if i keep getting error: Local variable j defined in an enclosing scope must be final or effectively final
What to do if i keep getting error: Local variable j defined in an enclosing scope must be final or effectively final
我正在尝试读取位置 (i) 上有多少行并显示由 enter 分隔,此时显示哪一个 (j) - 示例 15 中的 1 按下 enter 时将显示 2 of 15
这是导致错误的部分代码:
int i = 0;
int j = 0;
try {
ResultSet rs = stmt.executeQuery("SELECT * FROM product WHERE Location = 'REC1U'");
while(rs.next()) {
i++;
}
rs.next();
tfield.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER) {
j++; // <--- this is causing above error
String l = String.valueOf(j);
count.setText(l);
}
}
});
} finally {
stmt.close();
}
我试图让它最终化只是为了摆脱它,但无论如何它都行不通...
您可以使用内部具有最终计数器的对象。例如:
final AtomicInteger j = new AtomicInteger(0);
//...
public void keyPressed(KeyEvent e) {
j.incrementAndGet();
}
我正在尝试读取位置 (i) 上有多少行并显示由 enter 分隔,此时显示哪一个 (j) - 示例 15 中的 1 按下 enter 时将显示 2 of 15 这是导致错误的部分代码:
int i = 0;
int j = 0;
try {
ResultSet rs = stmt.executeQuery("SELECT * FROM product WHERE Location = 'REC1U'");
while(rs.next()) {
i++;
}
rs.next();
tfield.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_ENTER) {
j++; // <--- this is causing above error
String l = String.valueOf(j);
count.setText(l);
}
}
});
} finally {
stmt.close();
}
我试图让它最终化只是为了摆脱它,但无论如何它都行不通...
您可以使用内部具有最终计数器的对象。例如:
final AtomicInteger j = new AtomicInteger(0);
//...
public void keyPressed(KeyEvent e) {
j.incrementAndGet();
}