有没有办法让构造函数在Java中返回一个== null的对象?

Gen*_* S. 3 java

我有一种感觉答案是"不",但我想我会问以防万一......

伪代码:

Foo foo = new Foo();

if(foo != null){
    foo.useMe();
}else{
   System.out.println("foo failed to initialize");
}
Run Code Online (Sandbox Code Playgroud)

在Foo中我需要做些什么来实现这一目标?

cwa*_*ole 7

不,没有办法让新对象成为现实null.当然,这假定构造函数中没有错误,但如果存在错误,那么无论如何都将无法使用该变量.

有关类实例创建表达式的更多信息,我建议使用语言规范.

  • 有用吗?如果你想在'Foo`中发出初始化失败的信号,就抛出异常. (2认同)

小智 6

通常情况下,您只需要为此情况抛出异常.您可以轻松编写自己的异常,或者只使用类似的东西throw new Exception("foo failed to initialize");并捕获它.

编写自己的例外:http://www.javaplex.com/blog/java-creating-custom-exceptions/

  • @Dredel博士实际上并没有低估异常的力量和表现力 (3认同)