访问内部类字段时的java.lang.NullPointerException
我从下面第19行代码中得到一个空指针异常,访问内部类字段时的java.lang.NullPointerException,java,nullpointerexception,Java,Nullpointerexception,我从下面第19行代码中得到一个空指针异常,seq[index].value=lo。sequence类有一个整数类型的值字段,但我认为问题在于访问seq实例的数组 public class ImprovedFibonacci { class Sequence{ int value = 0; boolean isEven = false; } public static void main(String[] args){ final int MAX_LOOP = 20;
seq[index].value=lo代码>。sequence类有一个整数类型的值字段,但我认为问题在于访问seq实例的数组
public class ImprovedFibonacci {
class Sequence{
int value = 0;
boolean isEven = false;
}
public static void main(String[] args){
final int MAX_LOOP = 20;
int lo = 1;
int hi = 1;
int i = 0;
String mark = "-";
int index = 0;
ImprovedFibonacci.Sequence[] seq = new ImprovedFibonacci.Sequence[MAX_LOOP];
seq[index].value = lo;
System.out.println("Fibonacci seq 1 : " + lo);
System.out.println("Sequence class index: "+index+"value: "+seq[index].value);
for(i=MAX_LOOP;i>=1;i--) {
hi = hi + lo;
lo = hi - lo;
index++;
if(hi % 2 == 0){
mark = "-";
seq[index].isEven = true;
}else{
mark = "";
}
System.out.println(i + " : " + hi + mark);
seq[index].value = hi;
System.out.println("Sequence class index: "+index+"value: "+seq[index].value+"IsEven: "+seq[index].isEven);
}
}
}
您可以创建数组,但从不使用对象填充
ImprovedFibonacci.Sequence[] seq = new ImprovedFibonacci.Sequence[MAX_LOOP];
seq[index].value = lo;
所以seq[index]返回null,null.value给您一个NullPointerException
例如:
Object[] array = new Object[10];
创建一个包含10个元素的数组,但每个元素都是空的
以下是示例代码:
您创建数组,但从不填充对象
ImprovedFibonacci.Sequence[] seq = new ImprovedFibonacci.Sequence[MAX_LOOP];
seq[index].value = lo;
所以seq[index]返回null,null.value给您一个NullPointerException
例如:
Object[] array = new Object[10];
创建一个包含10个元素的数组,但每个元素都是空的
以下是示例代码:
seq
是一个具有最大循环空间的数组,但其中未实例化任何内容。第一个元素(seq[0]
)与所有其他元素一样为空
seq[index] = new ImprovedFibonacci.Sequence();
seq[index].value = lo;
seq
是一个具有MAX_循环空间的数组,但其中未实例化任何内容。第一个元素(seq[0]
)与所有其他元素一样为空
seq[index] = new ImprovedFibonacci.Sequence();
seq[index].value = lo;
我理解它为什么会得到null异常。如何创建所有数组对象的实例?如果我在上面这样做,我会得到以下错误:Description Resource Path Location Type No ImprovedFibonacci类型的封闭实例是可访问的。必须使用ImprovedFibonacci类型的封闭实例限定分配(例如,x.new A(),其中x是ImprovedFibonacci的实例)。ImprovedFibonacci.javaI理解它为什么会得到null异常。如何创建所有数组对象的实例?如果我在上面这样做,我会得到以下错误:Description Resource Path Location Type No ImprovedFibonacci类型的封闭实例是可访问的。必须使用ImprovedFibonacci类型的封闭实例限定分配(例如,x.new A(),其中x是ImprovedFibonacci的实例)。ImprovedFibonacci.java