当前位置: 首页 > 面试题库 >

构造函数可以返回空对象吗?

呼延卓
2023-03-14
问题内容

在浏览一些旧代码时,我遇到了这个宝石:

MyObject o = new MyObject("parameter");
if (o == null) o = new MyObject("fallback parameter");

第二行在Eclipse中被标记为无效代码,我知道为什么。似乎没有明确抛出任何异常,并且MyObject构造函数不可能抛出任何类型的异常(例如NullPointerException)。

我的问题是 为什么 要进行空检查?以前在Java的旧版本中,构造函数是否可以返回null?还是这仅仅是毫无用处的代码?


问题答案:

该代码在任何Java版本中均无效。构造函数不可能返回null,即使构造函数会抛出异常,也不会调用下一行。



 类似资料:
  • 问题内容: 除了使用关键字调用构造函数时,Java语言中的语句可以返回值的确切情况是什么? 例: 如果我没记错的话,如果它是一个非函数原语,将被返回。否则返回。这个对吗? 换句话说,什么值可以引起? 问题答案: 确切的条件在内部属性上进行了描述,该属性由操作员使用: 来自ECMA-262第3条。版本规格: 13.2.2 调用对象的属性时,将执行以下步骤: 创建一个新的本机ECMAScript对象。

  • 问题内容: 给定一个构造函数,例如 此功能是否应包括健全性检查,例如或?如果此函数应包含完整性检查,则构造函数应返回什么值?甲值,或错误()?下面包括一个示例。 问题答案: 返回。使用可分辨的值(例如)来指示错误不是惯用的。 另外:表达式的计算结果始终为。简化对或的检查。

  • 问题内容: 如果我在构造函数中返回一些值或对象,那么var会得到什么? 在两种情况下都会得到什么n? 其实这是一个测验问题,答案是什么? 自定义对象构造函数返回什么? a)新实例化的对象 b)未定义-构造函数不返回值 c)不论return语句是 d)等于return语句是什么;新实例化的对象(如果没有return语句) 问题答案: 我发现了这个很棒的链接: 上面提到的第二点魔术是构造函数返回特定的

  • 问题内容: 我有这个代码。对象构造函数是否有可能以某种方式失败,从而为它分配了一个值,并在构造函数返回后释放了该对象? 问题答案: 假设您使用的是PHP 5,则可以在构造函数中引发异常: 为了清楚起见,您可以将其包装在静态工厂方法中: 顺便说一句,某些版本的PHP 4允许您在构造函数中将$ this设置为NULL,但我认为这从未得到正式批准,并且最终删除了“功能”。

  • 问题内容: 抽象类可以有构造函数吗? 如果是这样,它将如何使用以及用于什么目的? 问题答案: 是的,抽象类可以具有构造函数。考虑一下: 超类是抽象的,并且具有构造函数。具体的类具有仅对值2进行硬编码的构造函数。具体的类具有允许调用者指定值的构造函数。 抽象构造函数将经常用于强制类约束或不变量,例如设置类所需的最小字段。

  • 问题内容: 我有一个通知组件,并且有一个超时设置。超时后我打电话。 我想做的是,如果已经超时,我什么都不渲染: 问题是: return(); //这里有一些语法错误 问题答案: 是的,您可以,但是如果您不想从组件中得到任何东西,则可以直接返回而不是空白,如下所示: 另一个要点是,在JSX内部,如果您有条件地渲染元素,则​​在情况下,您可以返回这些值中的任何一个。根据 DOC : 是 有效的孩子 ,