创建空引用

use*_*052 5 java

class A{

A(int i){
}
}

A obj=new A(1);
Run Code Online (Sandbox Code Playgroud)

如果我传递正数,则创建对象时必须创建对象.一个obj = new A(-1); 如果传递了negetive数字,则不得创建对象.

如何调整构造函数来执行此操作

Jon*_*eet 9

如果您不想创建对象,请不要调用new.调用new 始终会创建一个对象,即使它因异常而被抛弃.如果您只是想避免调用者因构造函数调用而接收到对象,则可能会使构造函数抛出异常.如果您希望它们只是接收空引用,则不能在构造函数中执行此操作.

但是,您可以使用静态方法,然后有条件地调用new或返回null:

public class A
{
    public static A createIfNonNegative(int i)
    {
        return i < 0 ? null : new A();
    }
}
Run Code Online (Sandbox Code Playgroud)