日期:2014-05-20  浏览次数:20933 次

关于运行时调用到接口中的数据而报错的一个问题~~请大家都来讨论一下~~指点一二~
//接口
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 没有问题啊!
可以正常运行!