SomeClass$1.class представляют анонимный внутренний класс
hava взгляд на анонимный внутренний раздел класса здесь
расти на hhafez: SomeClass$1.class представляет анонимные внутренние классы. Пример такого класса был бы
public class Foo{
public void printMe(){
System.out.println("redefine me!");
}
}
public class Bar {
public void printMe() {
Foo f = new Foo() {
public void printMe() {
System.out.println("defined");
}
};
f.printMe();
}
}
От нормального Основного при вызове новой Панели () .printMe, это распечатало бы "определенный", и в каталоге компиляции Вы найдете Bar1.class
этим разделом в вышеупомянутом коде:
Foo f = new Foo() {
public void printMe() {
System.out.println("defined");
}
};
назван анонимным внутренним классом.
Вы также получите что-то вроде SomeClass $ 1.class
, если ваш класс содержит частный внутренний класс (не анонимный), но вы создаете его экземпляр в какой-то момент в родительском классе.
Например:
public class Person {
private class Brain{
void ponderLife() {
System.out.println("The meaning of life is...");
}
}
Person() {
Brain b = new Brain();
b.ponderLife();
}
}
Это даст:
Person.class
Person$Brain.class
Person$1.class
Лично я думаю, что это немного легче читать, чем типичный анонимный класс, особенно при реализации простого интерфейса или абстрактного класса, который служит только для передачи в другой локальный объект .