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;
}
輸出類名稱?這會導致對象C上的.equals()始終失敗。我的理解是因爲getClass給出了封閉的類名,重寫的equals永遠不會被調用?爲Java匿名類
這是**不**它輸出什麼。它輸出'package.name.here.B $ 1''$ 1'表示這是一個匿名類。 Dup:http://stackoverflow.com/questions/7172581/why-getclass-returns-the-name-of-the-class-1-or或 –
@jahroy它是作爲[SSCCE](http:// sscce。組織/)。問題在於所假設的輸出不是實際輸出的。 –