[英]Java Servlets - Null Pointer Exception
我在servlet中有以下代码:
try
{
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("Flights_AssignmentPU");
EntityManager em = emFactory.createEntityManager();
Query query = em.createNamedQuery("Passengers.findByPassportNum");
query.setParameter("passportNum", passport);
List<Passengers> result = query.getResultList();
em.close();
for(int i = 0; i < result.size(); i++)
{
name = result.get(i).getName();
surname = result.get(i).getSurname();
email_address = result.get(i).getEmail();
}
}
catch(Exception e)
{
response.sendRedirect("ErrorPage.html");
}
if(email_address.isEmpty() == false)
{
//Send email using email address
}
当用户在数据库中有电子邮件地址时,此代码就可以正常工作。 但是,如果数据库中的电子邮件字段为空,则GlassFish Server会给我一个空指针异常。
对此负责的行肯定是这一行:
email_address = result.get(i).getEmail();
出于某种原因,当用户没有电子邮件时,此行会给我刚才描述的错误。 我怎么解决这个问题?
编辑
创建实体类时会自动生成方法getEmail(我已经使用了持久性)。
这是它的代码:
public String getEmail() {
return email;
}
我认为问题是这一行:
if(email_address.isEmpty() == false)
{
//Send email using email address
}
当数据库的电子邮件为空时,您可能会得到null
响应。 您正在对空引用调用isEmpty()
操作,这将导致NullPointerException
。
在调用isEmpty()
之前执行null
检查
例:
if(email_address != null && email_address.isEmpty() == false)
{
//Send email using email address
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.