0

次のコード スニペットがあります。

説明: result という配列があります。この配列は、「city」、「countryName」、「IATA」などのさまざまな文字列属性で構成されています。

for ループを使用して、前述のすべてのフィールドにアクセスして取得しようとします。

私の問題は次のとおりです。「city」と「countryName」には常に値がありますが、「IATA」には値がない場合があるため、「null」が返され、空の「IATA」にアクセスするとすぐに nullPointerException が発生します。 .

私はこれを試しました:

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


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

しかし、null のフィールドにアクセスしようとすると、この 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

オブジェクトのプロパティにアクセスする前に、単純な null チェックを実行します。

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

これを使用してください: if (entry.getIATA() != null)

于 2013-02-07T10:24:35.233 に答える
0

equalsメソッドを使用して null をチェックすることはできません。使用==:

if (entry.getIATA () == null)
于 2013-02-07T10:21:51.300 に答える