【发布时间】:2019-01-25 22:26:39
【问题描述】:
我有一个简单的问题。我已经知道在 Java 中你不能这样做:
Long.class.cast(and Integer here)
但我只是好奇为什么?相反,你可以很容易地进入溢出,但这样我就找不到任何可能发生的坏事。 谁能告诉我以这种方式使用铸造有什么问题?
编辑->
所以我想要做的。我已经写了一个转换器,它将我从我提供的输入(它是一个地图)转换为我的模型。我想为我指定的每个模型编写 1 个转换器。目前,它适用于其中的对象(例如我提供的其他模型)、字符串和相同类型(例如,我有一个整数,我提供了一个整数)。我正在尝试做的是,我想“更新”我的转换器以在以下情况下工作:在我的模型中,我有一个 Long 类型的字段,并且我提供了 Integer。所以我希望它将 Integer 转换为 Long,但是,我不想只为这种情况做 if(因为在这种情况下,例如从 Short 转换为 Long 将是另一种 if)。有可能吗?
【问题讨论】:
-
Integer integer = 1; System.out.println(Long.class.cast(integer));它抛出异常,我只是想知道为什么 -
它只是以不同的方式完成:
Long l = new Long(10i); -
@HovercraftFullOfEels Class#cast(Object)).
-
@Dukeling:谢谢你
-
@Ajris 你想做什么?基于your comment,您似乎正在尝试做其他事情。这被称为“XY 问题”,因此您可能想写一些关于“X”问题的内容。
标签: java casting int long-integer