[英]Long and Integer class cast
我有一个简单的问题。 我已经知道在Java中您不能做某事:
Long.class.cast(and Integer here)
但我很好奇为什么? 相反,您很容易陷入溢出,但是这种方式我无法发现可能发生的任何不良情况。 谁能告诉我以这种方式使用投射有什么问题吗?
编辑->
所以我正在尝试做。 我已经写了一个转换器,将我从提供的输入(它是一个Map)转换成我的模型。 我想为我指定的每个模型编写1个转换器。 目前,它适用于其中的对象(例如我提供的其他模型),字符串和相同的类型(例如,我有一个整数,我提供了一个整数)。 我想做的是,我想“更新”转换器以使其在以下情况下工作:在我的模型中,我有一个Long类型的字段,并且我提供了Integer。 因此,我希望将Integer转换为Long,但是,我不想仅在这种情况下使用(因为在这种情况下,例如从Short转换为Long会是另外一种情况)。 可能吗?
因为Object.cast(Object obj)
不仅仅用于数字。 用于类型转换。
如果对象不为null且不能分配给Long类型,则将引发ClassCastException
。
您可以使用以下命令:
Integer integer = 1;
Long l = integer.longValue();
或者您可以在Long
或Integer
上调用longValue
,然后使用Long.class.cast
:
Integer integer = 1;
Long longType = 1L;
Long l = Long.class.cast(longType.longValue());
l = Long.class.cast(integer.longValue());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.