Possible Duplicate:
Java local variable visibility in anonymous inner classes – why is ‘final’ keyword required?
I have this function that creates some buttons. I’m trying to out.println item in the doAction method.
for (int i = 0; i < itemsList.size(); i++) {
String item = itemsList.get(i);
TButton button = new TButton("" + item, 8, 415 + (25 * i), 90, 25) {
public void doAction() {
System.out.println("" + item);
}
};
this.framework.add(button);
}
I’m getting the error
local variable item is accessed from within inner class
How do I do this the right way?
Making
itemfinal should solve your problem:You can’t access a non-final local variable from an inner or anonymous class like this.