gpt4 book ai didi

java - 自动装箱/加宽发生在 Short a=3 中,但不在 Float a=3 中;

转载 作者:搜寻专家 更新时间:2023-10-31 20:24:00 25 4
gpt4 key购买 nike

我明白下面的代码不会起作用

Float a=3

因为它翻译成 Float a=Integer.valueOf(3)。我们将在 LHS 上有一个 Float 引用,在 RHS 上有一个 Integer 对象,这是不兼容的。但是:

1.

     `Short a=3;`

这行得通,不过在这里,我们将在左轴上有一个 Short 引用,在右轴上有一个 Integer 对象。

2.

Float a=(Float) 3

如果我们没有对 3 进行类型转换,它就会被翻译为 Integer.valueOf(3)。现在,它会被翻译成 Float.valueOf(3) 吗?

最佳答案

如果您的问题是“为什么 Float f = 3; 不能编译,而 Short s = 3; 可以?”,那么答案是:

Java 编译器对整型常量做了一些特殊的工作以使其适合左侧:它找到最合适的类型并使用它。所以,

Short s = 3;

编译为

Short s = Short.valueOf(3);

本质上,当你写的时候同样的魔法会发生

short s = 3;

但这仅适用于整数,不适用于浮点值。

关于java - 自动装箱/加宽发生在 Short a=3 中,但不在 Float a=3 中;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3676629/

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