构造函数创建失败后如何返回null
我定义了一个类,在写构造函数的时候通过参数来传递一些基本信息。比如在构造Person类时需要传递sex信息,例Person p=new Person("man");。在构造函数里面有一个判别机制,如果sex不是man或者woman则认为创建失败。我直接用return返回。这时候,按理说这样构建失败后的p应该为null.但实际上仍然可以通过p这个实例来调用方法,说明返回了一个实例。
我想问一下应该如何写构造函数才能使得当构造函数创建失败后返回null.
多谢了~~~
----------------解决方案--------------------------------------------------------
可以用switch语句判断,如果未实例的话,return null;
----------------解决方案--------------------------------------------------------
构造函数是没有返回值的,遇到这种问题只能抛出异常,或者写一个静态方法来创建这个对象:
程序代码:
public class Person {
public Person(...) throws XXXException {
if (...)
throw new XXXException(...);
...
}
// 或者:
public static Person create(...) {
if (...)
return null;
...
}
}
public Person(...) throws XXXException {
if (...)
throw new XXXException(...);
...
}
// 或者:
public static Person create(...) {
if (...)
return null;
...
}
}
----------------解决方案--------------------------------------------------------
受教了~~~~~多谢。
----------------解决方案--------------------------------------------------------