2012-04-19 18 views
2

特定Thread實例的靜態Thread.currentThread().getName()getName()之間有什麼區別?Thread.currentThread()。getName()和getName()之間有什麼區別?

+5

什麼是'getName()'? – SLaks 2012-04-19 15:24:24

+0

'new Thread(new Thread(){@Override public void run(){System.err.println(/ ***/Thread.currentThread()./***/ getName());}})。start ();'會顯示兩者之間的差異。 (提示:不要不必要地子類化(例如'Thread','JFrame','JPanel'。不要在不必要的類中實現接口來實現它的接口。) – 2012-04-19 16:01:12

+0

它們可能來自不同的類,或者它們來自不同的類你的問題實際上沒有任何意義。 – EJP 2012-04-19 22:47:29

回答

6

區別是getName()是一種實例方法,意味着它在Thread類的實例上運行。

Thread.getCurrentThread()是一個類或靜態方法,這意味着它不會對Thread一個實例,而是在它的類操作。

最終的區別是:如果你打電話Thread.currentThread().getName()currentThread()將返回Thread一個實例,然後你就可以調用getName()在該實例。您不能致電Thread.getName(),因爲必須在Thread的實例上調用getName()

+3

不想成爲一個語法納粹,但它是'Thread.currentThread()。getName()':) – fazhool 2013-06-18 15:57:46

相關問題