我想知道为什么我得到空指针异常
我已正确初始化
并尝试手动迭代代码
我被困在一部分......
private static final int PlacardHolderLength= 5 ;
private static final String PlacardHolder[]= new String[5];
int PlacardHolderRemainingslots=PlacardHolder.length;
if((Placard_Details1[0]!=null) && (Placard_Details1[2]=="no"))
{
for(int i=0 ; i<=PlacardHolder.length-1 ; i++)
{
// CHECK IF PRIMARY PLACARD IS PRESENT
System.out.println("Value" +i);
System.out.println("Valu2 " +PlacardHolder[0]);
System.out.println("PLACARD HOLDER POSITION" +PlacardHolderPositions);
if(PlacardHolder[i].equals(Placard_Details1[0]))
{
//PLACARD eXISTING DIALOG BOX
Flag_Placard_Existing=true;
AlertMessageSamePlacard();
getBannerData();
}
}
答案 0 :(得分:1)
由于PlacardHolder
是一个对象数组(Strings
),因此每个条目都使用null
进行初始化。在迭代数组之前,您应该为每个arrayelement分配一个实际的Object。
修改强>
次要细节:如果数组中的条目为null,则无法从此元素调用任何方法,因此PlacardHolder[i].equals(...)
会生成异常。
答案 1 :(得分:0)
你不正确初始化数组,至少在显示的代码中,这是随机片段(你将wtongly-static字段声明与方法体混合)。声明一个数组仍然没有将元素放入其中。
答案 2 :(得分:0)
您的代码由于以下行而失败:
if(PlacardHolder[i].equals(Placard_Details1[0]))
PlacardHolder[i]
可能尚未初始化。在if语句中,检查Placard_Details1[0]
,如果它是调用方法的对象就足够了。
if (Placard_Details1[0].equals(PlacardHolder[i]))
假设Placard_Details1 [0]可以与null
进行比较,应将其写入。{/ p>