public demo extends Frame { private String str[][][] = { { {"",""},{"",""},{"",""}... }, { {"",""},{"",""},{"",""}... }, ... }; public demo() { ... for(int j=0;j<str[index1][index2].length;j++) list3.addItem(str[index1][index2][j],j); } } 编译报错: ---------- javac ---------- Demo.java:222: local variable str is accessed from within inner class; needs to be declared final for(int j=0;j<str[index1][index2].length;j++) Demo.java:222: array required, but java.lang.String found for(int j=0;j<str[index1][index2].length;j++)
Demo.java:223: local variable str is accessed from within inner class; needs to be declared final list3.addItem(str[index1][index2][j],j); Demo.java:223: array required, but java.lang.String found list3.addItem(str[index1][index2][j],j);
4 errors
哪位大侠指教!!!
------解决方案-------------------- As you know the inner class exists for its own purpose, it needs a "final" modifier. Just like you want to initialize a variable once and want it immutable, you can use "final":
Java code
final static int SIZE = 10;
------解决方案-------------------- local variable str is accessed from within inner class; needs to be declared final 其实就是这个错,把你的代码粘出来看看,大致意思就是内部类访问不了局部变量,需要定义成final的。
------解决方案--------------------