Appearance
1.将基本数据类型放入集合类
java
List<Integer> li = new ArrayList<>();
for (int i = 1; i < 50; i ++){
li.add(i);
}
Java中的集合类只能接收对象类型,但上述代码并没有报错,包装类和基本类型支持自动拆箱与装箱,我们来看看编译后的代码:
java
List<Integer> li = new ArrayList<>();
for (int i = 1; i < 50; i += 2){
li.add(Integer.valueOf(i));
}
2.包装类型和基本类型的大小比较与计算
查看如下代码,当我们包装类与基本类型进行大小比较或进行计算时,会将包装类拆箱成基本类型。
java
Integer a=1;
System.out.println(a==1?"等于":"不等于"); // 编译:System.out.println(a.intValue()==1?"等于":"不等于");
Boolean bool=false;
System.out.println(bool?"真":"假"); // 编译:System.out.println(bool.booleanValue?"真":"假");
Integer i = 10;
Integer j = 20;
System.out.println(i+j); //编译:System.out.println(i.intValue() + j.intValue());
3.三目运算符的坑
三目运算符的语法会在当第二、第三位操作数分别为基本类型和对象时,其中的对象就会拆箱为基本类型进行操作,所以即便k使用Integer对象接收仍然会报错。
java
public static void main(String[] args) {
boolean flag = true;
Integer i = null;
int j = 1;
Integer k = flag ? i : j; // int k = flag ? i.intValue() : j;
}