У меня есть фрагмент кода, подобный следующему в моем проекте:
public static void main(final String[] args) {
System.out.println("Hello world");
final TypeReference<String> tr1 = new TypeReference<>() {};
final Runnable r = () -> {
System.out.println("Running");
final TypeReference<String> tr = new TypeReference<>() {};
System.out.println(tr);
};
new Thread(r).start();
}
Это присутствует в eclipse, который работает с Java 11. Теперь, когда eclipse компилирует этот класс, он генерирует следующее files:
TestAnon.class
TestAnon$2.class
TestAnon$3.class
Поскольку у него есть два анонимных внутренних класса, имеет смысл иметь два разных файла классов с $
. Однако постфиксами являются $2
и $3
вместо $1
и $2
. Любая конкретная c причина создания файлов классов в этом порядке (и пропуск $1
)?
PS Когда я компилирую класс в командной строке, он генерирует файлы классов в правильном порядке.