编译不过去啊 n.getClass() == Number.class
Topic source似乎是泛型的问题,我还没学到泛型,所以发表一下自己的拙见。
Integer n = 0;
n.getClass(); // 类型为 Class<capture#1 of ? extends java.lang.Integer>
Number.class; // 类型为 Class<java.lang.Number>
n.getClass() == Number.class; // 编译报错
这两个变量的类型不同,且没有继承关系,直接比较会编译报错。
但是如果在比较之前,把其中一个变量赋给 Class 类的实例,就不会报错:
Integer n = 0;
Class c1 = n.getClass();
Class c2 = Number.class;
System.out.println(n.getClass() == c2); // false
System.out.println(c1 == Number.class); // false
- 1
小样_这么多人抢
报错信息为