gpt4 book ai didi

java - 为什么在 java 中无法将 Wrapper Integer 转换为 Float

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:08 25 4
gpt4 key购买 nike

为什么 Wrapper Float 的类型转换在 java 中不适用于 Wrapper Integer 类型。

public class Conversion {
public static void main(String[] args) {
Integer i = 234;

Float b = (Float)i;

System.out.println(b);

}
}

最佳答案

Integer 不是Float。对于对象,如果 IntegerFloat 的子类,则转换会起作用,但事实并非如此。

Java 不会将 Integer 自动拆箱为 int,转换为 float,然后自动装箱为 Float 当触发此所需行为的唯一代码是 (Float) 强制转换时。

有趣的是,这似乎有效:

Float b = (float)i;

Java 会自动将 i 拆箱为 int,然后显式转换为 float(widening primitive conversion, JLS 5.1.2),然后赋值转换自动将其装箱为 Float

关于java - 为什么在 java 中无法将 Wrapper Integer 转换为 Float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281919/

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