【发布时间】:2013-02-07 10:18:21
【问题描述】:
我有以下代码sn-p。
说明: 我有一个名为 result 的数组。 该数组由不同的字符串属性组成,例如“city”、“countryName”和“IATA”。
使用 for 循环,我尝试访问和检索所有上述字段。
我现在的问题是:虽然“city”和“countryName”总是有值,但“IATA”有时没有值并因此返回“null”,这会在我访问空时导致 nullPointerException “国际航空运输协会”。
我试过这个:
if(entry.getIATA().equals(null)) {
} else {
startIATA[count] = entry.getIATA();
}
但是,当我尝试访问一个为空的字段时,这个 if 条件不起作用。 有谁知道我该如何解决这个问题?
这里是相关代码sn-p:
private String[] startIATA = new String[200]; //That is more than long enough
...
for (int count = 0; count < result.getAirports().length(); count++) {
AirportsEntry entry = result.getAirports().get(count);
// Block for StartAirport
HorizontalPanel hp = new HorizontalPanel();
hp.setSpacing(5);
hp.add(new Label(entry.getCity()));
hp.add(new Label(entry.getCountryName()));
hp.add(new Label(entry.getIATA()));
GWT.log("IATA: " + entry.getIATA());
if(entry.getIATA().equals(null)) {
} else {
startIATA[count] = entry.getIATA();
}
startAirportVP.add(hp);
}
非常感谢您的宝贵时间和帮助!
【问题讨论】:
-
我不认为你可以在 null 上做 equal 可以吗?您不需要进行“==”比较吗?
-
这是因为“.equals”试图调用对象上的方法(这就是“.”的意思:调用方法)。但是,因为你的对象是空的,它会出错,因为你不能对不存在的东西调用方法。相反,您可以使用“==”来检查对象是否为空。
标签: java arrays nullpointerexception