Swift" 的想法隐含地解包了选项"与Java" autoboxing "相同整数?如果xObj
被声明为"隐式解包选项":
Integer xObj = new Integer(-1);
xObj = null; // could do this with an implicitly unwrapped optional as well.
Integer.valueOf(xObj); // <-- exception. Integer.valueOf(int x); couldn't deal with this.
重点是&#34;隐含地解开选项&#34;可以是零,但你最好小心,不要在预期非零参考时使用它们,对吗?
答案 0 :(得分:2)
是Swift&#34;隐含式解包的选项&#34;与Java&#34; autoboxing&#34;相同整数?
同?不,这个声明过于强烈了。在某些情况下,是否有类似的目的?是的。
Autoboxing在Java中使用有两个主要原因:
将值类型(基元)转换为对象,以便它们可以存储在集合中,例如ArrayList
和HashMap
。
byte
,short
,int
,long
,float
,double
,{{1 }和boolean
。因此,为什么这些是具有自动框对象等价物的唯一类型。 Java自动装箱仅限于这些类型,而在Swift中,Optionals适用于所有类型。char
对象来做与Java类似的事情。在不使用哨兵值的情况下允许可空性。即返回NSNumber
而不是null
,-1
等