Java 构造函数空对象
Java constructor empty object
第一次在这里提问,如有不妥请见谅
public class Person
{
private String name;
private Date born;
private Date died; //null indicates still alive.
public Person(String initialName, Date birthDate, Date deathDate)
{
if (consistent(birthDate, deathDate))
{
name = initialName;
born = new Date(birthDate);
if (deathDate == null)
{
died = null;
}
else
{
died = new Date(deathDate);
}
}
else
{
System.out.println("Inconsistent dates.Aborting.");
System.exit(0);
}
}
}
我的书里有这段代码。它只是代码的一部分,不是完整的代码。我只复制了我要问的部分。我的问题是。我们不能只删除 if (deathDate == null)
。如果是null
,那么died
还是null
吗?
继续阅读。有一个 else
语句。你建议的是替换这个:
if (deathDate == null) died = null;
else died = new Date(deathDate);
与:
died = new Date(deathDate);
这行不通;这将归结为 new Date(null)
将抛出 NullPointerException。
注意:这是疯狂代码。当先决条件失败(不一致的日期)时,您将抛出异常。您不会将某些内容打印到标准错误并退出整个虚拟机。将最后两行替换为 throw new IllegalArgumentException("Death date cannot be before birth date. Death: " + death + " birth: " +birth);
.
你不妨替换一下代码:
if (deathDate == null)
{
died = null;
}
else
{
died = new Date(deathDate);
}
进入这个:
died = null;
if (deathDate != null)
{
died = new Date(deathDate);
}
第一次在这里提问,如有不妥请见谅
public class Person
{
private String name;
private Date born;
private Date died; //null indicates still alive.
public Person(String initialName, Date birthDate, Date deathDate)
{
if (consistent(birthDate, deathDate))
{
name = initialName;
born = new Date(birthDate);
if (deathDate == null)
{
died = null;
}
else
{
died = new Date(deathDate);
}
}
else
{
System.out.println("Inconsistent dates.Aborting.");
System.exit(0);
}
}
}
我的书里有这段代码。它只是代码的一部分,不是完整的代码。我只复制了我要问的部分。我的问题是。我们不能只删除 if (deathDate == null)
。如果是null
,那么died
还是null
吗?
继续阅读。有一个 else
语句。你建议的是替换这个:
if (deathDate == null) died = null;
else died = new Date(deathDate);
与:
died = new Date(deathDate);
这行不通;这将归结为 new Date(null)
将抛出 NullPointerException。
注意:这是疯狂代码。当先决条件失败(不一致的日期)时,您将抛出异常。您不会将某些内容打印到标准错误并退出整个虚拟机。将最后两行替换为 throw new IllegalArgumentException("Death date cannot be before birth date. Death: " + death + " birth: " +birth);
.
你不妨替换一下代码:
if (deathDate == null)
{
died = null;
}
else
{
died = new Date(deathDate);
}
进入这个:
died = null;
if (deathDate != null)
{
died = new Date(deathDate);
}