我想用3参数构造函数编写Person类,如果用户为某个人的名字和姓氏提供空字符串,我想为该对象返回null,因为我想使用junit assertNull函数来显示该对象未创建带有空字符串。
public Person(String names,String surnames,int ages)
{
if(!names.equals(null) && !surnames.equals(null))
{
name = names;
surname = surnames;
}
else
{
return;
}
if(ages > 0)
age = ages;
else
return;
}
和测试就是那样
@Test
public void createPerson()
{
String ad = null;
String soyad = null;
int age = 10;
Person p = new Person(ad, soyad, age);
assertNull("Object is not created!", p );
}
怎么做我得到空指针异常?
答案 0 :(得分:1)
你得到一个NullPointerException,因为你在null对象上调用equals方法。如果要检查String是否为空,则需要使用someString != null
。
您需要做的是:
if (names != null && surnames != null)
但这并不能解决您的问题,即无法从构造函数返回null。你唯一能做的就是抛出一个NullPointerException - 这正是你的代码所做的。必须有其他方法来解决你遇到的问题。