首页 > 试题广场 >

下面程序输出是? public class Main {

[单选题]
下面程序输出是?
public class Main {
    public static void main(String[] args) {
        ArrayList<String> l1 = new ArrayList<String>();
        ArrayList<Integer> l2 = new ArrayList<Integer>();
        l1.add("1");
        l2.add(1);
        System.out.println(l1.get(0).getClass());
        System.out.println(l2.get(0).getClass());
        System.out.println(l1.getClass() == l2.getClass());
    }
}

  • class java.lang.Object
    class java.lang.Object
    true
  • class java.lang.Object
    class java.lang.Object
    false
  • class java.lang.String
    class java.lang.Integer
    true
  • class java.lang.String
    class java.lang.Integer
    false
Java 中泛型在编译时会进行类型擦除,因此l1和 l2 类型擦除后的结果都是 java.util.ArrayLis ,进而 l1.getClass() == l2.getClass() 的结果是 true
发表于 2019-12-05 16:09:36 回复(1)