Class A{
public void test(){
B b = new B();
System.out.println( "Class Name: " + b.createClassC().getClass() );
}
}
Class B{
public C createClassC(){
C c = new C(){
@Override
public boolean equals( Object other ){
return true;
}
};
}
}
Class C{
int val = 8;
}
输出:类名:package.name.here .B
有人能告诉我为什么匿名类类型在 getClass() 方法中给出封闭类吗?这会导致对象 C 上的 .equals() 一直失败。我的理解是因为 getClass 给出了封闭的类名,所以永远不会调用覆盖的 equals ?