在Java中将Object转换为Long的更理想的方法是什么?

时间:2016-12-19 20:03:08

标签: java performance

当我要求购买房产时,我正在处理一个返回Object的API。

Object x = r.getProperty("id");

但我知道这个属性特别是Long。所以这些是我正在权衡的两个选项:

Long x = Long.parseLong(r.getProperty("id").toString());

Long x = (Long)r.getProperty("id");

哪一个是性能优先的?

2 个答案:

答案 0 :(得分:3)

如果你知道它是Long的事实,我绝对会选择演员。它更清晰,可能更有效率。如果您确定返回类型为Number,则可以致电Number.longValue()。如果这不是确定的,那么我可能会使用解析选项来保证安全并避免使用instanceof样板。

答案 1 :(得分:1)

第二种方法更快,但不是很宽容:除非该值实际上是Long,否则代码将崩溃。

另一方面,第一种方法将在类型更改后继续存在:如果您以后决定使用IntegerStringByte或其他类型的自定义toString打印与long兼容的数值,代码即可运行。因此,第一种方法更加健全。