java.lang.NullPointerException错误

时间:2011-10-02 17:01:10

标签: java

我在这一行上收到了这个空错误,但我正在进行if检查并设置一个空字符串,如果为null。我做错了吗?

java.lang.NullPointerException
at form.setSam((teamBean.getHead().getNone().getCode() == null) ? "" : teamBean.getHead().getNone().getSamCode().toString());   //SAM

代码:

public int show(Action action) throws Exception
{
    HttpServletRequest request = action.getRequest();

    String[] params;

    if (!isEmpty(params[0]))
    {

    String teamNumber= params[0];

    TeamBean teamBean = DAO.getTeamDAO().getTeamByNumber(Long.parseLong(teamNumber));

    Fake form = new fakeForm();

    form.setMoor(teamBean.getHeader().getMoor()); 
    form.setDoor(Double.toString(teamBean .getDoors()));    
    form.setURC(Double.toString(teamBean.getURCS()));   
    form.setUMC(Double.toString(teamBean.getUMCSt()));  
    form.setWeek(Long.toString(teamBean.getHead().getWeek().getnow())); //WEEK
   ERROR HERE -->>   form.setSam((teamBean.getHead().getNone().getCode() == null) ? "" : teamBean.getHead().getNone().getSamCode().toString()); //SAM

2 个答案:

答案 0 :(得分:3)

为清楚起见,这是为您提供NullPointerException

的表达式
teamBean.getHead().getNone().getCode()

您没有检查getNone是否返回null。

答案 1 :(得分:2)

你得到它是因为teamBean.getHead().getNone()为空。而且由于你在这个空值上调用getCode(),你会得到一个NullPointerException。

请注意

form.setSam((teamBean.getHead().getNone().getCode() == null) ? "" : "");

可以改写为

form.setSac("");

(除了你没有NullPointerException)