我有以下代码片段。Java数组中的某些字段为空,处理这些
说明: 我有一个名为result的数组。 此数组包含不同的字符串属性,如“城市”,“国家/地区名称”和“IATA”。
使用for循环,我尝试访问和检索所有上述字段。
我现在的问题是:虽然“城市”和“countryName”总是有一个值,但“IATA”有时没有值,因此返回“null”,一旦我访问了一个nullPointerException空“国际航空运输协会”。
我尝试这样做:
if(entry.getIATA().equals(null)) {
} else {
startIATA[count] = entry.getIATA();
}
但是,如果这个条件没有工作,我试图访问一个字段,为空。 有没有人知道我可以如何解决这个问题?
下面是相关的代码片段:
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);
}
非常感谢您的时间和您的帮助!
我不认为你可以做空等于可以吗?你不需要做一个“==”比较。 –
这是因为“.equals”试图调用一个对象的方法(这就是“。”意思是:调用方法)。但是,因为你的对象是空的,所以它是错误的,因为你不能在不存在的东西上调用一个方法。相反,您可以使用“==”来检查对象是否为空。 –
谢谢你的回答 –