关于运行时调用到接口中的数据而报错的一个问题~~请大家都来讨论一下~~指点一二~
//接口
public interface Constant {
String allString[][][][] = new String[3][27][1][1];
int[][] A = new int[2][3];
}
//普通的继承该接口的类
public class testCanvas extends Canvas implements Constant {
public testCanvas() {
initial();
}
public void initial() {
allString[1][2][0][0] = "";
}
public void paint() {;}
}
当编译工程的时候没有任何问题,但当运行到testCanvas的对象时,会抛出异常
ALERT: java/lang/
NoSuchFieldError: No such field allString.[[[[Ljava/lang/String;.
这是为什么呢?如果把build环境改成1.3就没问题,1.4以上的版本全都报错。难道不允许调用接口里面的数组,而只能是简单的数据吗?
经过eclipse3.3 ,netbeans 6.0 正式版, JBuilder2006 测试过,都有该问题~另外,我是从事j2me开发的~~
------解决方案--------------------接口中的成员变量默认是final & static的,子类里直接用allString[1][2][0][0]=""肯定是不行的
------解决方案--------------------在我这里能运行。。。
------解决方案--------------------?我这里是JDK 5.0 没有问题啊!
可以正常运行!