Java数组中的某些字段为null,处理这些字段

时间:2013-02-07 10:18:22

标签: java arrays nullpointerexception

我有以下代码段。

说明: 我有一个名为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);

                }

非常感谢您的时间和帮助!

3 个答案:

答案 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)