2017-04-07 77 views
1

我是一名Java初學者,最近和Java class reference一起工作。我只是不小心通過Unix時間戳(Long)到SimpleDateFormat::format,它工作。但是,在參考頁上我看不到SimpleDateFormat::format(Long)。活動父級DateFormat沒有方法format(Long)。 既然沒有像SimpleDateFormat::format(Long)這樣的方法,javac應該會返回一個編譯器錯誤,不是嗎?爲什麼SimpleDateFormat :: format(Long)適用於Java?

還是自動將Long轉換爲Date

回答

3

下一個超類,Format,確實有一個format(Object)過載。

不是現代的API設計,但你去。

3

SimpleDateFormat具有簽名String格式(Object obj)的方法。 因此,當您在SimpleDateFormat上調用具有長值的格式時,將使用此方法,因爲Object是Long的子類,或者您的Long值是Object。

+1

你一定是說:Object是一個**超級**的長類;-) –

+0

是的,但不是直接的。您需要在層次結構中:長 - >數 - >對象。 –

+1

正確的,間接的超類兩個級別更高,而不是你在答案中寫的子類。 –

相關問題