gpt4 book ai didi

java - 无法将 java.lang.Integer 转换为 int

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

我对以下 Java 代码感到困惑,其中我尝试使用两种方法将 Object 转换为 int:

Object o = 1;
System.out.println((int) o);
Class <?> t = int.class;
System.out.println(t.cast(o));

第二行转换 Objectint传统上,并成功。然而,第四个,我希望它在功能上是等效的,会抛出

Exception in thread "main" java.lang.ClassCastException: Cannot cast java.lang.Integer to int

第二行和第四行在功能上有什么区别?为什么一个失败而另一个成功?

最佳答案

Object o = 1;
System.out.println((int) o);

通过这两行代码,你就遇到了装箱和拆箱。第一行将 int 值 1 隐式转换为 Integer 对象。 o 被分配了对此对象的引用。这种隐式转换称为装箱。

在第二行,o 引用的 Integer 对象被取消装箱为 int,可以将其强制转换为 int .

关于java - 无法将 java.lang.Integer 转换为 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361095/

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