您好我是Java的新手,我想知道这两个陈述之间的区别是什么:
long statusId = (long)(Some_Valid_Cast);
和
Long statusId = (Long)(Some_Valid_Cast);
铸造应该首选哪一个?为什么?
提前致谢。
答案 0 :(得分:3)
第一个投射到基本类型long
,第二个投射到类型Long
的对象。这些是不同的 - 请参阅this相关问题。
答案 1 :(得分:1)
您想要一个long的对象表示,还是只需要数字(原语)?
基元(int,long等)可以与它们的对象等价物(Integer
,Long
等互换。如果您使用对象变体,则可以将它们插入通常接受对象的集合中(例如Map
,List
,Set
),并在期望Object
的任何位置使用。但是,我通常希望您在大多数应用程序中使用原始变体。
有关优缺点的更多信息,请查看this SO question。
答案 2 :(得分:1)
long 是原始类型,长是对象类型。它根据您的需要而定。 > = Java5版本,不需要显式类型转换