2017-11-05 12 views
0

配列の既存の値のセットを追加することによって、配列のインスタンスshortFacilitiesArrayを作成しました。しかし、インスタンスの配列をオブジェクトの属性として設定すると、すべてのデータが失われます。 、それは出力ヌルれるマップ内のオブジェクトの配列として設定した後、 私shortFacilitiesArrayは{「駐車場」、「ドライヤー」}である場合:オブジェクトの属性として割り当てられても配列要素が保持されない

if(hotelMap.containsKey(hotelID)) { 

    JSONArray shortFacilitiesJSON = jsonObj.getJSONArray("shortFacilities"); 
    String[] shortFacilitiesArray = (hotelMap.get(hotelID)).getFacilitiesShort(); 
    shortFacilitiesArray = new String[shortFacilitiesJSON.length()]; 
    for (int i=0;i<shortFacilitiesJSON.length();i++) { 
      shortFacilitiesArray[i] = shortFacilitiesJSON.getString(i);    
    } 

    hotelMap.get(hotelID).setFacilitiesShort(shortFacilitiesArray); 
} 

を例えば:私のコードは次のように大部分でありますヌル。

+0

問題を示す[mcve]を作成してください。 –

+0

@JohnKugelmanご意見ありがとうございます。私は私の質問でコードをきれいにした。問題の例は、私のコード、質問の最後の文の下に示されています。 –

+0

'String [] shortFacilitiesArray =(hotelMap.get(hotelID))。getFacilitiesShort();' 'shortFacilitiesArray = new String [shortFacilitiesJSON.length()];'なぜデータを読み込んだ後に配列をreassingするのですか? – dehasi

答えて

1

追加コンテキストがなければ、私の賭けはshortFacilitiesJson.GetString()がおそらくnullを返すため、最初に移入された配列をnullの配列に設定することになります。これを検証するには、shortFacilitiesArrayが文字列で始まるシナリオをテストします。この場合、プログラムを実行した後、shortFacilitiesArrayは最初の要素を除くすべてのNULLを含む必要があります。これは以前と同じ文字列でなければなりません。

+0

残念ながら、これはそうではありません。私はそのようなシナリオをテストしたが、短いFacilitiesJson.GetString()が(nullではなく)文字列を返すにもかかわらず。あなたが言及した2番目のケースは、私のコードの別の部分にあり、結果は です。実際にはString、null、null、null ...ですが、shortFacilitiesJson.GetString()のためではありません。 –

+0

setFacilitiesShortメソッドのコードを共有できますか? – ThePretendProgrammer

+0

public void setFacilitiesShort(String [] facilities){this.facilitiesShort = facilitiesShort; } –

関連する問題