我有以下代码段。
说明: 我有一个名为result的数组。 该数组由不同的String属性组成,如“city”,“countryName”和“IATA”。
使用for循环,我尝试访问并检索所有上述字段。
我现在的问题是:虽然“city”和“countryName”总是有值,但“IATA”有时没有值,因此返回“null”,一旦我访问空值就会导致nullPointerException “IATA”。
我试过了:
if(entry.getIATA().equals(null)) {
} else {
startIATA[count] = entry.getIATA();
}
但是,这个if条件不起作用,因为我尝试访问一个null的字段。 有谁知道如何解决这个问题?
以下是相关的代码段:
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);
}
非常感谢您的时间和帮助!
答案 0 :(得分:3)
在访问对象的属性之前执行简单的空检查。
if(entry != null && entry.getIATA() != null){
startIATA[count] = entry.getIATA();
}
答案 1 :(得分:0)
您无法使用equals
方法检查null。使用==
:
if (entry.getIATA () == null)
答案 2 :(得分:0)
使用这个: if(entry.getIATA()!= null)