Файл класса для нового потока и файл класса для основного совпадают

У меня есть программа под названием Main.java, показанная ниже. После компиляции этой программы будет два файла.class: Main.class и Main$1.class. Моя проблема в том, что два файла.class абсолютно одинаковы.

Кто-нибудь знает, что не так?

Я хочу применить некоторые коды в методе run() нового потока, но не могу найти инструкции кодов в методе run() нового потока.

public class Main{
    public static void main(String...args){
         Thread t=new Thread(){
         @Override
             public void run(){
             System.out.println("xxxx");
             }
         };
    t.start();
    }
}

1 ответ

Мои деньги будут на том, что вы неправильно сравниваете файлы двух классов. Могу поспорить, что вы пишете что-то вроде этого в вашем bash-подобном приглашении:

md5sum Main.class Main$1.class

(или какой-либо другой инструмент для проверки контрольной суммы, кроме md5sum)

Это на самом деле замена переменной с именем 1 в строке - если вы не определили эту переменную, эта переменная пуста, так что расширяется до:

md5sum Main.class Main.class

который покажет как то же самое содержимое файла.

Попробуйте заключить в кавычки вторую строку:

md5sum Main.class 'Main$1.class'
Другие вопросы по тегам