2017-12-10 30 views
0

要素をリストに追加するときにナットポインタ例外が発生します。 エラーSystem.NullPointerExceptionです:リストに要素を追加する際にnullポインタ例外が発生する

if (out == null) { } 

out.add(Time.newInstance(17,00,00,00));

public class BusScheduleCache 
{ //Variable 
private Cache.OrgPartition part; 

//Constructor 
public BusScheduleCache() 
{ 
    Cache.OrgPartition newobj = Cache.Org.getPartition('local.BusSchedule'); 
    part = newobj; 
} 

//methods 
public void putSchedule(String busLine, Time[] schedule) 
{ 
    part.put(busline, schedule); 
} 

public Time[] getSchedule (String busline) 
{ 
    Time[] out = new List<Time>(); 

    out = (Time[]) part.get(busline); 
    if (out == null) 
    { 
     out.add(Time.newInstance(8, 00, 00, 00)); 
     out.add(Time.newInstance(17,00,00,00)); 

    } 

     return out; 

} 

}

答えて

1

にnullオブジェクトを参照に解除しようとは、問題はリストoutnullであれば、あなたがチェックしているということですその状態で、nullリストに追加します。

Time[] out = new List<Time>(); 

out = (Time[]) part.get(busline); 

まずあなたが新しいリストで変数をインスタンス化outが、その後、あなたは再びそれをnullの参照を割り当てます。

また、これらの2行を確認します。

それはこのような何かやって役に立つかもしれません:

Time[] out = part.containsKey(busline) ? 
        (Time[]) part.get(busline) : new List<Time>(); 
if (out.isEmpty()) 
{ 
    out.add(Time.newInstance(8, 00, 00, 00)); 
    out.add(Time.newInstance(17,00,00,00)); 
} 

return out; 
+0

はありがとうを。このソリューションは魅力的に機能しました。 – dev

関連する問題