我有 2 个子类(学生、教师)和一个超类(职业)。
我从学生创建了对象 A,从老师创建了对象 B。
Student A = new Student();
Teacher B = new Teacher();
我已经创建了一个将对象作为参数并返回布尔值的静态方法;
compare(A, B);
public static boolean compare(Student s, Teacher t)
在方法中,我只是把这段代码用来比较两个对象是否属于同一个类;
if (s.getClass() == t.getClass())
现在我收到错误消息:
incomparable types: Class<CAP#1> and Class<CAP#2>
其中 CAP#1,CAP#2 是新的类型变量:
CAP#1 extends Student from capture of ? extends Student
CAP#2 extends Teacher from capture of ? extends Teacher
这里有什么问题?
注意:如果我使用比较 s.equals(t),它根本没有任何错误。为什么我不能正确使用 object.getClass() 方法?