gpt4 book ai didi

java - BigInteger 没有自动装箱吗?

转载 作者:行者123 更新时间:2023-12-01 16:57:21 25 4
gpt4 key购买 nike

修复 this question 的代码时,我意识到自动装箱并不适用于所有类型。此代码编译:

Integer y = 3;

但是对 BigInteger 执行相同操作不会编译:

BigInteger x = 3;

->“类型不匹配:无法从 int 转换为 BigInteger”

BigInteger 没有自动装箱吗?如果没有,支持自动装箱的类型的规则是什么?为什么不包括 BigInteger

最佳答案

首先,请注意,BigIntegerjava.math 的一部分,而不是 java.lang,因此不会受到特殊处理通过语言。所有装箱类型都在 java.lang 中,因此 Java 语言可能会特殊对待它们。这种考虑可以包括装箱、常量池中的字符串、位于专门内存区域中的类对象等。

其次,一个名为 Java Language Specification 的引用文档(或简称 JLS)准确地描述了这一点:

Boxing conversion converts expressions of primitive type to corresponding expressions of reference type. Specifically, the following nine conversions are called the boxing conversions:

  • From type boolean to type Boolean

  • From type byte to type Byte

  • From type short to type Short

  • From type char to type Character

  • From type int to type Integer

  • From type long to type Long

  • From type float to type Float

  • From type double to type Double

  • From the null type to the null type

Source

但是,有一个request允许自动装箱 BigInteger 并在应用于 BigInteger 对象时为各种数学运算符赋予特殊含义。

关于java - BigInteger 没有自动装箱吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30939680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com