我继承了具有相当复杂方法的代码,其返回类型为Object
. 根据输入,此方法表示保证返回不同的类型(Integer
、String
、null
等)。如果它说保证返回一个Integer
. 以下(显然)无法编译:
int result;
result = foo(parameters);
编译器抱怨Object
to的类型不匹配int
,它也应该这样。但是,以下两行都可以编译:
result = (int) foo(parameters);
result = (Integer) foo(parameters);
我知道这两个电话都会做我想让他们做的事情。(就此而言,转换为short
orShort
会起作用。)我的问题是:这两个转换调用之间的实现是否有任何实际差异,并且在最佳实践或性能方面比另一个更好?澄清一下,我知道原语和包装器之间的区别,它们的内存使用情况,存在的能力等等。我只问关于从.null
Object
据我了解,这两个调用都将遵循相同的步骤:1)将 theObject
转换为 an (如有必要,Integer
抛出 a ),以及 2)从中提取 an 。ClassCastException
int
Integer
如果那里有重复的问题,我深表歉意。我搜索了它,但没有找到任何问题回答了从Object
to转换的问题int
。