我已经定义了两个类:Employee 和 Doctor,他们是父子。像这样的代码:
class Employee {
// ....
}
class Doctor extends Employee {
// ....
}
然后我写了一个这样的主要方法:
public static void main(String[] args) {
Doctor doctor = new Doctor();
Employee employee = new Employee();
System.out.println(doctor.getClass() == new Employee().getClass()); // code 1
System.out.println(employee.getClass() == Employee.class); // code 2
System.out.println(doctor.getClass() == Employee.class); // code 3
}
但只有code 1
andcode 2
是正确的并code 3
调用异常:
Error:(33, 46) Java: uncomparable type: java.lang.Class<capture#1 extends Doctor> and java.lang.Class<Employee>
我知道我可以用它equals
来处理这个问题,但我想知道为什么我不能用运算符==
来比较它们。