5
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));
}
}
なぜですかa.compareTo(b)
コンパイル(int cannot be dereferenced
)?私はcompareTo
にオブジェクトが必要であることを知っていますが、必要に応じてオートボックが自動的にint
をInteger
にすると考えました。この場合、オートボクシングが発生しないのはなぜですか?それ以外の場合はどうなるのでしょうか?Javaは、compareToメソッドのためのintのautoboxingはありませんか?