繁体   English   中英

Java的。 如何使用私有构造函数重写类中的方法

[英]Java. How to override method in class with private constructor

我想重写LocalDate类的toString()方法。 我知道如何使用类似以下代码的公共构造函数(如java.util.Date )覆盖类的toString()方法:

Date date = new Date () {
   @override
   public String toString() {...}
}

但是我不能对具有私有构造函数(如java.time.LocalDate)的类做同样的事情?有什么办法可以解决此问题?

简单的答案是:您不能。

该类javadoc告诉您:

公共最后一堂课LocalDate

您不能扩展最终类,因此您不能更改其任何方法的行为,至少不能在Java中更改。 (Kotlin提供了扩展方法 ,使您可以“完成”该事情)。

但是正如注释中所指出的那样, 假设您的问题是正确格式化Date,LocalDate,...实例的格式,那么覆盖 toString()就是错误的方法。 您可以使用DateFormatter将日期对象转换为格式化的日期字符串,请参见此处以获取指导。

我们不能覆盖最终类的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM