【问题标题】:Some fields in a Java array are null, handling of theseJava 数组中的某些字段为空,处理这些
【发布时间】: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


【解决方案1】:

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

if(entry != null && entry.getIATA() != null){
    startIATA[count] = entry.getIATA();
}

【讨论】:

  • 非常感谢您的超快回答!它工作正常:)
  • @user2039697 很高兴我能帮上忙。
【解决方案2】:

您不能使用equals 方法来检查是否为空。使用==

if (entry.getIATA () == null)

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2011-11-14
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多