gpt4 book ai didi

java - Long 和 Integer 类转换

转载 作者:行者123 更新时间:2023-12-02 01:58:48 27 4
gpt4 key购买 nike

我有一个简单的问题。我已经知道在 Java 中你不能做这样的事情:

Long.class.cast(此处为 Integer)

但我只是好奇为什么?相反,你很容易陷入溢出,但这样我就找不到任何可能发生的坏事。谁能告诉我以这种方式使用类型转换有什么问题吗?

编辑->

所以我正在尝试做的事情。我已经编写了一个转换器,它将我从提供的输入(它是一个 map )转换为我的模型。我想为我指定的每个模型编写 1 个转换器。目前,它适用于其中的对象(例如我提供的其他模型)、字符串和相同类型(例如我有一个整数并且我提供了一个整数)。我想做的是,我想“更新”我的转换器以在以下情况下工作:在我的模型中,我有一个 Long 类型的字段,并且我提供了 Integer。所以我希望它将 Integer 转换为 Long,但是,我不想仅针对这种情况进行 if (因为在这种情况下,例如从 Short 转换为 Long 将是另一个 if)。可能吗?

最佳答案

因为Object.cast(Object obj)不仅仅适用于数字。它用于类型转换。

如果对象不为 null 并且不可分配给 Long 类型,则将抛出

ClassCastException

你可以使用这个:

Integer integer = 1;

Long l = integer.longValue();
<小时/>

或者您可以在 LongInteger 上调用 longValue,然后使用 Long.class.cast:

Integer integer = 1;
Long longType = 1L;

Long l = Long.class.cast(longType.longValue());
l = Long.class.cast(integer.longValue());

关于java - Long 和 Integer 类转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51919763/

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