Java:扩展LocalDate(LocalDateTime)类
是否可以扩展JDK1.8Java:扩展LocalDate(LocalDateTime)类,java,datetime,java-8,Java,Datetime,Java 8,是否可以扩展JDK1.8LocalDate类而不包装它 public class UserLocalDate extends LocalDate implements UserType { //Cannot inhertit from final java.time.LocalDate } 该类是final,因此不能直接扩展。是否有类似的抽象类可以扩展,或者以其他方式获得具有相同方法的类 我试图做的是创建一个Hibernate自定义的UserTypedate类,它将是运行时环境中
LocalDate
类而不包装它
public class UserLocalDate extends LocalDate implements UserType {
//Cannot inhertit from final java.time.LocalDate
}
该类是final,因此不能直接扩展。是否有类似的抽象类可以扩展,或者以其他方式获得具有相同方法的类
我试图做的是创建一个Hibernate自定义的
UserType
date类,它将是运行时环境中的LocalDate
,并将作为使用特定规则生成的整数存储到数据库中。您可以实现ChronoLocalDate接口,但是,包装类可能是您的最佳选择。不,您不能扩展LocalDate,因此您的实现在您的环境中是一个LocalDate
。即使在实现ChronoLocalDate
时,您的实现也不会是LocalDate
为什么不将
LocalDate
作为日期数据库值存储在数据库中呢?您使用的是哪个Hibernate版本?自Hibernate版本5以来,支持这些日期类型,如果您使用的是旧版本,则可以使用AttributeConverter。不久前我写了一篇关于这一点的文章,您可能希望通过这种方式进行检查。谢谢!我使用的是Hibernate 5,但是日期应该存储为4字节的整数
,而不是日期类型。我以前使用过AttributeConverter
,但现在我发现将LocalDate
包装在里面更容易实现HibernateUserType
。是的,我使用包装。实现ChronoLocalDate
听起来像是从草图中编写自己的LocalDate
。@OlegMikhailov我只会实现您实际需要/使用的方法。实现整个ChronoLocalDate
很可能是过火了。