长整数整数转换

时间:2018-08-19 16:39:14

标签: java casting int long-integer

我有一个简单的问题。我已经知道,在Java中您无法做某事:

Long.class.cast(and Integer here)

但是我很好奇为什么?相反,您很容易陷入溢出,但是这种方式我无法发现可能发生的任何不良情况。 谁能告诉我以这种方式使用投射有什么问题吗?

编辑->

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

1 个答案:

答案 0 :(得分:2)

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

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

ClassCastException

您可以使用此功能:

Integer integer = 1;

Long l = integer.longValue();

或者您可以在longValueLong上致电Integer,然后使用Long.class.cast

Integer integer = 1;
Long longType = 1L;

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