Kai*_*Bum 5 java int autoboxing compareto
class Test{
public static void main(String[] args){
int a = 1;
int b = 5;
Integer c = new Integer(1);
Integer d = 5; //autoboxing at work
System.out.println(c.compareTo(d));
System.out.println(a.compareTo(b));
}
}
Run Code Online (Sandbox Code Playgroud)
为什么不a.compareTo(b)编译(int cannot be dereferenced)?我知道compareTo需要的对象,但我认为自动装箱会自动作出int的Integer必要时.为什么在这种情况下不会发生自动装箱?还有什么其他情况不会发生?
根据有关自动装箱的 Oracle 教程,当基元为以下两种情况时,将发生装箱:
在您的示例 ( ) 中计算的表达式a.compareTo(d)不属于其中任何一种情况。
JCP 提案中关于自动装箱的一些有趣的附加信息描述了赋值转换、方法调用转换和强制转换的机制和规则。
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |