2017-04-07 50 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

正确的,间接的超类两个级别更高,而不是你在答案中写的子类。 –

相关问题