小编Ayu*_*ain的帖子

为什么在Java中从List中删除原始类型时没有Autoboxing?

我有以下代码抛出IndexOutOfBoundsException异常:

 List<Character> list = new ArrayList<>();
 char c  = 'a';
 list.add(c);
 list.remove(c); // gets fixed by passing list.remove((Character)c);
Run Code Online (Sandbox Code Playgroud)

我知道发生这种情况是因为在移除时不会发生AutoBoxing,而在添加元素时会发生AutoBoxing.我的问题是为什么?添加从char到Character的AutoBoxing是可行的,而在remove方法中它不是吗?

java autoboxing list

4
推荐指数
2
解决办法
214
查看次数

Java 自动装箱和使用运算符比较对象

当数值比较运算符用于比较 Java 中的 2 个整数对象时,我试图了解以下代码的行为。

    Integer i1 = new Integer(1);
    Integer i2 = new Integer(1);
    System.out.println(i1 == i2);
    System.out.println(i1 > i2);
    System.out.println(i1 >= i2);
Run Code Online (Sandbox Code Playgroud)

上面代码的输出是:

false
false
true
Run Code Online (Sandbox Code Playgroud)

我理解在第一种情况下发生的事情(对象实例的比较是这样的,这就是它给出错误的原因)。但是为什么第二个和第三个场景不同,它究竟是如何工作的呢?

java comparison autoboxing integer

2
推荐指数
1
解决办法
505
查看次数

标签 统计

autoboxing ×2

java ×2

comparison ×1

integer ×1

list ×1