Я недавно начал работать над Java Project, который был сделан много лет назад, и я стараюсь понять код как можно больше (учитывая, что я как бы начинающий стараюсь развиваться).Java-Thread вызывает doMain(), когда нет run()?
Вот мои сомнения: У меня есть два класса, допустим, это ClassA и ClassB, которые не расширяют друг друга. В ClassA есть основной метод, который запускает следующий код:
Thread object = new Thread(ClassB);
object.start();
Из моего понимания потоков, то это должно вызвать метод Run() на ClassB. Однако самый важный метод в ClassB - метод doMain(), и нет run().
Как узнать, действительно ли метод doMain() является вызываемым методом?
Спасибо за помощь :)
P.S. Это пример кода, реальный код в 1000 раз сложнее и, возможно, есть нюансы, которые я не получаю, но любые подсказки о том, что делать, были бы замечательными.
Добавить код отладки. –
Если в ClassB нет «run()», класс из класса ClassB не реализует Runnable, поэтому конструктор, вызывающий новый поток (ClassB), не должен компилироваться. см. https://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#Thread(java.lang.Runnable) –
Я сомневаюсь, что вы можете скомпилировать «новую тему (ClassB);». Вам нужно сделать экземпляр класса B, например. новый ClassB(). Если ваш ClassB не реализует Runnable, тогда код не будет компилироваться. Наконец, ClassB не может реализовать Runnable без метода run(). Таким образом, либо ваш код не компилируется, либо у вас есть метод run, возможно, в родительском классе, как предлагали другие? – Michal