提问人:Bittu 提问时间:11/10/2023 更新时间:11/10/2023 访问量:66
将 format() 放置在 LocalDate 或 LocalTime 中的原因是什么,即使没有可能使用它的方法
What is reason of placement of format() inside LocalDate or LocalTime, even if there is no possible way of using it
问:
类 LocalDate、LocalTime、LocalDateTime 是最终的,不能从中创建对象,因此不能对非静态方法 format() 进行静态引用。 此外,提到的所有三个类都仅继承自 Object 类。因此,这三个类中没有可以从中访问此方法的超类。 此方法既不来自 LocalDate、LocalTime、LocalDateTime 类实现的任何接口,也不能重写此方法,因为所有三个类都是最终的。 请向我解释上述任何类中 format() 的本质。
答:
2赞
Reilas
11/10/2023
#1
"...类 LocalDate、LocalTime、LocalDateTime 是最终的,不能从中创建对象......”
您的术语不正确。
而且,当一个类是用 final 关键字定义的,它不能被封装。
不过,可以创建一个对象。
LocalDate ld = LocalDate.of(2023, 11, 9);
LocalTime lt = LocalTime.of(12, 34);
LocalDateTime ldt = LocalDateTime.of(2023, 11, 9, 12, 34);
"...因此,不能对非静态方法 format() 进行静态引用。..."
与 of 方法不同,format 方法未定义为静态方法,因此您需要使用实例来访问它。
LocalTime lt = LocalTime.of(12, 34);
lt.format(DateTimeFormatter.ISO_LOCAL_TIME);
评论
format
String
MyClass extends LocalDate...
final
abstract
public final class Foo { ...
Foo
LocalDate.now()
LocalDate.of(2023, MAY, 12)
LocalDate.now().format(DateTimeFormatter.ISO_DATE)
final
new