2012-04-19 3 views
2

В чем разница между статическими Thread.currentThread().getName() и getName() конкретного экземпляра темы?В чем разница между Thread.currentThread(). GetName() и getName()?

+5

Что такое 'getName()'? – SLaks

+0

'new Thread (new Thread() {@Override public void run() {System.err.println (/ ***/Thread.currentThread() ./***/ getName());}}). Start(); 'будет показывать разницу между ними. (Советы: не подклассы излишне (например, 'Thread',' JFrame', 'JPanel'. Не ходите, если классы не обязательно реализуют интерфейсы, черт возьми.) –

+0

Либо они из разных классов, либо они являются одним и тем же методом, и нет никакой разницы. Ваш вопрос на самом деле не имеет никакого смысла. – EJP

ответ

6

Разница getName() - метод экземпляра, то есть он работает с экземпляром класса Thread.

Thread.getCurrentThread() - это класс или статический метод, то есть он не работает на экземпляре Thread, а скорее на его классе.

Конечная разница заключается в следующем: если вы звоните Thread.currentThread().getName(), currentThread() возвращает экземпляр Thread, который вы можете затем вызвать getName() этого экземпляра. Вы не можете позвонить Thread.getName(), потому что getName() должен быть вызван на экземпляр Thread.

+3

не хотят быть нацистами грамматики, но это 'Thread.currentThread(). getName()' :) – fazhool

Смежные вопросы