When an inner class refers to an instance variable that is a member of a lexically enclosing class, the variable of the corresponding lexically enclosing instance is used. A blank final (�4.5.4) field of a lexically enclosing class may not be assigned within an inner class.
If you move the declaration for str1 inside the setval() method, the code will compile. [ April 06, 2006: Message edited by: J Sato ]
define a final variable in the method ,you must initlize it java don't have is blank local final variable so the final local variable is different from general local variable (not final variable ) the general variable can initlizew before using it;