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Имя класса для Java анонимного класса Output
Может кто-нибудь сказать мне, почему анонимные типы классов дает класс ограждающую в GetClass (метод) ? Это приводит к тому, что .equals() на объекте C терпит неудачу все время. Насколько я понимаю, поскольку getClass предоставляет имя класса, переопределенное равное никогда не вызывается?
Это ** не **, что он выводит. Он выводит '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. орг /). Проблема в том, что предполагаемый вывод не является тем, что фактически выводится. –