为什么在使用 new 关键字初始化 Float 对象时,不需要用 f 作为文字 1.0 后缀?



我目前正在准备参加OCA考试,这本书中讨论的主题之一是定义原始变量,如intdoublefloat...要声明和初始化float变量,您必须在文本后加上 f 后缀,例如:

float a = 1.0f; // this compiles
float a = 1.0; // Doesn't compile

因为否则文字(1.0(将被视为double。我对以下行有疑问,为什么它的编译没有 f 后缀?

Float flt = new Float(1.0); // why this line compile without f suffix on 1.0?

接受double作为 Float 构造函数的参数之一。 如果不是这样,它肯定不会编译。

Float构造函数重载以接受floatdouble参数。

最新更新