Файл класса для нового потока и файл класса для основного совпадают
У меня есть программа под названием 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'