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 は呼び出されませんか?