长整型和整数类强制转换



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

Long.class.cast(and Integer here)

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

编辑>

所以我正在努力做什么。我已经编写了一个转换器,它将我从我提供的输入(它是一个地图(转换为我的模型。我想为我指定的每个模型编写 1 个转换器。目前,它适用于其中的对象(例如我提供的其他模型(、字符串和相同的类型(例如我有一个整数,我提供了一个整数(。我想做的是,我想"更新"我的转换器以在以下情况下工作:在我的模型中,我有一个 Long 类型的字段,我提供了整数。所以我希望它将整数转换为长整型,但是,我不想只在这种情况下进行如果(因为在这种情况下,例如从短到长转换将是另一个如果(。可能吗?

因为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());

最新更新