gpt4 book ai didi

java - 类型转换和包装器 : some strange cases

转载 作者:行者123 更新时间:2023-11-30 06:25:04 25 4
gpt4 key购买 nike

看看这个...今天晚上我试图将一些 primiteves 转换到 wrapper 上时发现:

Integer i = (Integer)4;
Integer i = (Integer)4f; // Doesn't compile!

但是如果我重写第二行:

Integer i2 = (int)4f; // Then it compiles

有什么区别?为什么我应该能够在第一种情况下使用包装类进行转换,而在第二种情况下却不能?

最佳答案

这里

Integer i = (Integer)4f; 

你正在将一个 float 基元转换为一个整数包装器——它们不适合。这也与自动装箱无关。即使有明确的装箱,这仍然不会编译:

Integer i = (Integer)(Double.valueOf(4f));

在这里:

Integer i2 = (int)4f;

你将一个 float 原语转换为一个 int 原语(在这个过程中被截断),然后 java 自动将它转换为一个 Integer

关于java - 类型转换和包装器 : some strange cases,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223177/

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