这些演员阵容有什么区别?哪一个更受欢迎?

时间:2012-12-13 13:06:23

标签: java casting

您好我是Java的新手,我想知道这两个陈述之间的区别是什么:

long statusId = (long)(Some_Valid_Cast); 

Long statusId = (Long)(Some_Valid_Cast); 

铸造应该首选哪一个?为什么?

提前致谢。

3 个答案:

答案 0 :(得分:3)

第一个投射到基本类型long,第二个投射到类型Long的对象。这些是不同的 - 请参阅this相关问题。

答案 1 :(得分:1)

您想要一个long的对象表示,还是只需要数字(原语)?

基元(int,long等)可以与它们的对象等价物(IntegerLong等互换。如果您使用对象变体,则可以将它们插入通常接受对象的集合中(例如MapListSet),并在期望Object的任何位置使用。但是,我通常希望您在大多数应用程序中使用原始变体。

有关优缺点的更多信息,请查看this SO question

答案 2 :(得分:1)

long 是原始类型,是对象类型。它根据您的需要而定。 > = Java5版本,不需要显式类型转换