我设置如下静态类在另一个类中调用
State cur=new State ();
为什么会说我初始化错?(Exception in thread "main" java.lang.ExceptionInInitializerError)还要怎么给他初始化?
他还说是因为我数组越界导致( java.lang.ArrayIndexOutOfBoundsException: 8
at State.<clinit>(State.java:19)
... 2 more)
到底那里错????!!!!
public class State {
static int [][]a=new int[8][8];
static int [][]aa=new int[4][4];
static //静态初始化器,初始化静态属性
{
for(int i=0;i<8;i++)
for(int j=0;j<8;i++)
{a[i][j]=0;}
for(int i=0;i<4;i++)
for(int j=0;j<4;i++)
{aa[i][j]=0;}
}
public State(){ }
static void seta(int i,int j,int av)//修改静态属性
{
a[i][j]=av;
}
static void setaa(int i,int j,int av)//修改静态属性
{
aa[i][j]=av;
}
}
State cur=new State ();
为什么会说我初始化错?(Exception in thread "main" java.lang.ExceptionInInitializerError)还要怎么给他初始化?
他还说是因为我数组越界导致( java.lang.ArrayIndexOutOfBoundsException: 8
at State.<clinit>(State.java:19)
... 2 more)
到底那里错????!!!!
public class State {
static int [][]a=new int[8][8];
static int [][]aa=new int[4][4];
static //静态初始化器,初始化静态属性
{
for(int i=0;i<8;i++)
for(int j=0;j<8;i++)
{a[i][j]=0;}
for(int i=0;i<4;i++)
for(int j=0;j<4;i++)
{aa[i][j]=0;}
}
public State(){ }
static void seta(int i,int j,int av)//修改静态属性
{
a[i][j]=av;
}
static void setaa(int i,int j,int av)//修改静态属性
{
aa[i][j]=av;
}
}
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
{a[i][j]=0;}
for(int i=0;i<4;i++)
for(int j=0;j<4;j++)
{aa[i][j]=0;}
for(int j=0;j<4;i++) <---j
还要初始化么?可是他说是 java.lang.ExceptionInInitializerError
for(int j = 0; j < 8; i++),这里面的j永远都j<8,而i却在不断增加,所以导致数组越界,初始化错误了,改过之后,在别的类里调用State our = new State();就可以了.
State.a[i][j]
貌似也不成