0

我有以下代码片段。

说明:我有一个名为 result 的数组。该数组由不同的字符串属性组成,例如“city”、“countryName”和“IATA”。

通过 for 循环,我尝试访问和检索所有上述字段。

我现在的问题是:虽然“city”和“countryName”总是有一个值,但“IATA”有时没有一个值,因此返回“null”,一旦我访问一个空的“IATA”就会导致 nullPointerException .

我试过这个:

if(entry.getIATA().equals(null)) {


                    } else {
                        startIATA[count] = entry.getIATA();
                    }

但是,当我尝试访问一个为空的字段时,这个 if 条件不起作用。有谁知道我该如何解决这个问题?

这是相关的代码片段:

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);

                }

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

4

3 回答 3

3

在访问对象的属性之前执行简单的空检查。

if(entry != null && entry.getIATA() != null){
    startIATA[count] = entry.getIATA();
}
于 2013-02-07T10:20:09.313 回答
0

您不能使用equals方法来检查空值。使用==

if (entry.getIATA () == null)
于 2013-02-07T10:21:51.300 回答
0

使用这个: if (entry.getIATA() != null)

于 2013-02-07T10:24:35.233 回答