自动插装箱的陷阱

Java自动拆装箱作为一种语法糖并非在任何情况下都能让使用者感到“便利”。

例:

public class demo1 {
    public static void main(String[] args) {
        Integer a =1;
        Integer b =2;
        Integer c =3;
        Integer d =3;
        Integer e =321;
        Integer f =321;
        Long g =3L;

        System.out.println(c==d);
        System.out.println(e==f);
        System.out.println(c==(a+b));
        System.out.println(c.equals(a+b));
        System.out.println(g==(a+b));
        System.out.println(g.equals(a+b));

    }
}
运行结果

包装类在遇到没有遇到运算的情况下,==不会自动拆箱。
因此我们在写代码是要尽可能避免包装类的直接比较运算。

发表评论

邮箱地址不会被公开。 必填项已用*标注