Ank*_*ani 8 java type-conversion wrapper
为什么Wrapper Float的类型转换在java for Wrapper Integer类型中不起作用.
public class Conversion {
public static void main(String[] args) {
Integer i = 234;
Float b = (Float)i;
System.out.println(b);
}
}
Run Code Online (Sandbox Code Playgroud)
rge*_*man 17
一个Integer
不是Float
.对于对象,如果是Integer
子类Float
,则转换将起作用,但它不起作用.
当触发此期望行为的唯一代码是强制Integer
转换时int
,Java不会自动取消装入,转换为a float
,然后自动装箱.Float
(Float)
有趣的是,这似乎有效:
Float b = (float)i;
Run Code Online (Sandbox Code Playgroud)
Java将自动解压缩成i
一个int
,然后有显式强制转换float
(扩展原始转换,JLS 5.1.2),然后赋值转换自动将其转换为a Float
.