将 format() 放置在 LocalDate 或 LocalTime 中的原因是什么,即使没有可能的使用方法

问题描述 投票:0回答:1

LocalDate、LocalTime、LocalDateTime 类是最终类,无法从中创建对象,因此无法对非静态方法 format() 进行静态引用。 此外,提到的所有三个类都仅继承自 Object 类。因此,这三个类没有可以访问此方法的超类。 该方法既不是来自 LocalDate、LocalTime、LocalDateTime 类实现的任何接口,也不能重写该方法,因为所有三个类都是最终类。 请向我解释上述任何类中 format() 的本质。

java java-time
1个回答
0
投票

“... LocalDate、LocalTime、LocalDateTime 类是最终类,无法从中创建对象...”

您的术语不正确。

Java 中,对象是一个 ,通常是 实例

并且,当使用 final 关键字定义 class 时,它不能被 封装
不过,可以创建对象

LocalDate ld = LocalDate.of(2023, 11, 9);
LocalTime lt = LocalTime.of(12, 34);
LocalDateTime ldt = LocalDateTime.of(2023, 11, 9, 12, 34);

“...所以不能对非静态方法format()进行静态引用。...”

format方法未定义为static,因此您需要使用实例来访问它。

LocalTime lt = LocalTime.of(12, 34);
lt.format(DateTimeFormatter.ISO_LOCAL_TIME);
© www.soinside.com 2019 - 2024. All rights reserved.