运行时出现java.lang.NullPointerException?
我写的程序:
public class queen
{
static int qu[];
public queen()
{
int[] qu={0,0,0,0,0,0,0};
}
public int search(int num,int position)
{
int i,j=position;
for(i=0;i<j;i++)
{
for(;j<=6;j++,i=0)
{
if(qu[i]!=j&&j-qu[i]-num+i!=0) break;
}
if(j>6) return -1;
}
return j;
}
public static void main(String ar[])
{
int flag;
queen ob=new queen();
int i;
for(i=0;i<=6&&i>=0;)
{
flag=ob.search(i,qu[i]);
if(flag>=0) {qu[i]=flag;i++;}
else {i--;}
}
if(i<0) {System.out.println("fail");}
else for(int n=0;n<=6;n++)
System.out.println(qu[n]);
}
}
编译能通过,在运行时提示
flag=ob.search(i,qu[i]);
出现java.lang.NullPointerException
问题出在哪?请指教,谢谢!
------解决方法--------------------------------------------------------
qu数组没有初始化
------解决方法--------------------------------------------------------
qu数组没有初始化
你去掉那个构造方法
直接这样定义static int qu[]={0,0,0,0,0,0,0};
------解决方法--------------------------------------------------------
to colt30() 你的构造方法定义不对 找不到数组元素 所以抛出java.lang.NullPointerException
------解决方法--------------------------------------------------------
对于用{}对数组进行初试化只能在出现在数组生成处,即static int qu[]={0,0,0,0,0,0,0};
而并非象你写的那样,声明完数组后,又再构造函数中用{}进行初试化。
------解决方法--------------------------------------------------------
public queen()
{
int[] qu={0,0,0,0,0,0,0};
}
这里的qu只是这个函数的局部变量