pause Java: Thread.currentThread(). Sleep(x) vs. Thread.sleep(x)




sleep method (3)

У меня это в моем коде

Thread.currentThread().sleep(x);

Eclipse говорит мне использовать статический

Thread.sleep(x); 

вместо этого, почему? В чем разница, есть ли какая-то разница в функциональности между этими двумя методами?

https://code.i-harness.com


В Java сон является статическим методом. Оба примера делают то же самое, но прежняя версия сбивает с толку, потому что похоже, что она вызывает метод на конкретном объекте, но это совсем не так. В вашем примере это не имеет большого значения, но более опасно, если у вас есть следующее:

someOtherThread.sleep(x);

На этот раз похоже, что вы говорите какой-то другой поток, чтобы спать, но на самом деле вы помещаете текущий поток в сон. Способ избежать такого типа ошибки - всегда вызывать статические методы, используя класс, а не конкретный объект.


Два вызова метода идентичны поведению, потому что они вызывают один и тот же метод, но используют имя класса ( Thread в этом случае), а не экземпляр для доступа к статическим полям и методам делают эту статичность понятной. Вот почему это предупреждение производится.

Но учитывая, что статические поля и методы показаны определенным образом в большинстве IDE (например, в курсивом шрифте в Eclipse и IntelliJ IDEA), это предупреждение по-прежнему необходимо? Возможно, не так много, как было в первые дни Java, что простые редакторы были в использовании.


Thread.currentThread().sleep(x); или способ, которым Eclipse говорит так: Thread.sleep(x); статический контекст необходим, если он в этом нуждается, поэтому мы удерживаемся за небольшую задержку с этим сном.

Статическая парадигма, установленная одним объектом, влияет только на этот конкретный жизненный цикл кучи объекта, опять же учитывая, что статический цикл жизненного цикла объекта не является чем-то назойливым, если это необходимо, его можно использовать для облегчения кодирования, но его следует делать осторожно, print относится к Class (например: - Class.forName(pkg.className) ), как по имени, а не по любому object который представляет собой копию одного экземпляра класса в HEAP памяти во время выполнения.

Опять же использование объекта также имеет плюсы и минусы от слабых, фантомных, сильных видов ссылок ....,

Код Convoluted by Nature. Это как раз то, как мы делаем, чтобы заставить его работать и функционировать.





warnings