【问题标题】:null pointer exception in adding element to list将元素添加到列表时出现空指针异常
【发布时间】:2017-12-10 15:26:00
【问题描述】:

将元素添加到列表时,我遇到了一个 nut 指针异常。 错误是 System.NullPointerException: Attempt to dereference an null object on 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;

}

}

【问题讨论】:

    标签: salesforce apex-code apex force.com


    【解决方案1】:

    问题是您正在检查列表out 是否为null

    if (out == null) { }
    

    在该条件下,您将添加到 null 列表中。

    同时复习这两行:

    Time[] out = new List<Time>();
    
    out = (Time[]) part.get(busline);
    

    首先你用一个新列表实例化变量out,然后你再次分配null对它的引用。

    这样做可能会很有用:

    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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-21
      • 2018-03-09
      • 2013-06-24
      相关资源
      最近更新 更多