当我要求购买房产时,我正在处理一个返回Object
的API。
Object x = r.getProperty("id");
但我知道这个属性特别是Long
。所以这些是我正在权衡的两个选项:
Long x = Long.parseLong(r.getProperty("id").toString());
Long x = (Long)r.getProperty("id");
哪一个是性能优先的?
答案 0 :(得分:3)
如果你知道它是Long
的事实,我绝对会选择演员。它更清晰,可能更有效率。如果您确定返回类型为Number
,则可以致电Number.longValue()
。如果这不是确定的,那么我可能会使用解析选项来保证安全并避免使用instanceof
样板。
答案 1 :(得分:1)
第二种方法更快,但不是很宽容:除非该值实际上是Long
,否则代码将崩溃。
另一方面,第一种方法将在类型更改后继续存在:如果您以后决定使用Integer
,String
,Byte
或其他类型的自定义toString
打印与long
兼容的数值,代码即可运行。因此,第一种方法更加健全。