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

为什么布尔对象在Java中具有公共构造函数?

屈星腾
2023-03-14
问题内容

new Boolean(boolean value)Java 构造函数的文档说明:

注意:很少适合使用此构造函数。除非需要新实例,否则静态工厂valueOf(boolean)通常是更好的选择。它可能会产生明显更好的时空性能。

如果是这样,为什么这个构造函数是公开的而不被弃用?是否有充分的理由使用此构造函数代替Boolean.valueOf()


问题答案:

valueOf() Java 1.4中仅添加了它,因此似乎存在构造函数是为了向后兼容。

此票证解释了不弃用构造函数的原因:

由于该中断,API可能不推荐使用,因此,当前必须弃用API是“主动有害的”,例如Thread.stop。尽管此构造函数的使用肯定是不明智的,但它并没有达到(或降低)要在JDK中弃用的危险性标准。将来,我们可能会添加“贬义”功能来标记不太坏的API元素,以至于不建议使用它们,但在大多数情况下不应该使用它们。该构造函数将是贬义的良好候选者。

我想不出一个现实的情况,在这种情况下,使用Boolean构造函数将是做有用的事情的最佳方法。



 类似资料:
  • 问题内容: 为什么Java 中的类有一个? 我们无法实例化一个类,它的构造是什么? 有什么想法吗? 问题答案: Java中的构造函数实际上并不“构建”对象,而是用于初始化字段。 想象一下,您的抽象类具有字段x和y,并且无论最终创建什么实际的具体子类,您总是希望以某种方式对其进行初始化。因此,您将创建一个构造函数并初始化这些字段。 现在,如果您的抽象类有两个不同的子类,则在实例化它们时,将调用它们的

  • 问题内容: 用于java.io.FileDescriptor.FileDescriptor()的 JavaDoc 说: 构造一个(无效的)FileDescriptor对象。 如果构造函数没有目的,为什么它的访问级别未声明为 package-private ? 问题答案: 此构造函数是公共的,因为它在之外使用。 在JRE 7u4 Linux x86中使用的类: 有一种方法允许程序员将a的状态更改为有

  • 问题内容: 我想知道抽象类的构造函数的作用是什么;因为我们没有实例化抽象类,所以为什么我们需要这样的构造函数? 问题答案: 有时候,您需要对实例变量进行一些常见的初始化,而所有继承类都需要设置。在扩展抽象类时,您会实例化该抽象类,而该具体类具有构造函数,该构造函数将向抽象类的构造函数提供参数。

  • 问题内容: 我的一项作业需要一个银行帐户才能从支票和储蓄帐户转帐资金。交易存储在ArrayList中,并设置为用户指定何时转移资金。用于支票和储蓄的银行帐户类可以正常工作,但是我创建的TransferService类在NetBeans中不能正确编译。 这些提示似乎无法解决错误。我得到错误: 事务是抽象的,无法实例化。 我该如何解决这个问题? 问题答案: 构造函数没有返回类型。所以不 反而 关于,

  • 问题内容: 如果不可变的类对象副本将与原始副本相等,那么为什么Java 中的类具有副本构造函数?这是一个错误还是背后有原因?在Java文档中,指定了: 问题答案: 复制字符串的主要原因是为了 “修剪行李” ,即仅将底层char数组修剪为必需的字符。 基本的char数组可能太大,因为通过调用创建字符串时,char数组可以在新的字符串实例和源字符串实例之间共享;偏移量指向第一个字符,并且包括长度。 我

  • 问题内容: Java为什么不支持C ++中的复制构造函数? 问题答案: Java。只是没有像在C ++中那样隐式地调用它们,我怀疑这是您的真正问题。 首先,复制构造函数无非是: 现在,C ++将使用以下语句隐式调用复制构造函数: 在这种情况下,克隆/复制在Java中根本没有意义,因为所有b1和b2都是引用,而不是像C 中那样的值对象。在C 中,该语句复制对象的状态。在Java中,它只是复制 引用