java中的有效空值评估

时间:2013-01-18 14:54:01

标签: java

我得到了以下方法

public Person findByAdd(String add) {
    try {
        final String queryString = "select p from Destinations p where p.address = :add";
        Query query = em.createQuery(queryString);
        query.setParameter("add", add);
        return (Person) query.getSingleResult();

    } catch (RuntimeException re) {
        throw re;
    }
}

如果Person对象不存在则抛出空指针异常,我想做类似这样的事情

if(person.getAdd !=null){
   system.out.println ("address exist");    
}
else
{
system.out.println ("please enter address ");   
}

但如果此人不存在则抛出异常,如何有效地评估if person是否为空

2 个答案:

答案 0 :(得分:5)

if (person != null && person.getAdd() != null)
   System.out.println ("address exist");    
}

答案 1 :(得分:1)

如果要返回getSingleResult()值,请不要使用null。使用此:

TypedQuery<Person> query = em.createQuery(queryString, Person.class);
List<Person> list = query.getResultList();
if (list.isEmpty()){
    return null;
}
return list.get(0);
//or inlined: return list.isEmpty() ? null : list.get(0);