我想重写LocalDate类的toString()方法。我知道如何使用类似以下代码的公共构造函数(如java.util.Date)覆盖类的toString()方法:
Date date = new Date () {
@override
public String toString() {...}
}
但是我不能对具有私有构造函数(如java.time.LocalDate)的类做同样的事情
有什么办法可以解决这个问题?
最佳答案
简单的答案是:您不能。
该类javadoc告诉您:
公共最后一堂课LocalDate
您不能扩展最终类,因此不能更改其任何方法的行为,至少不能在Java中更改。 (Kotlin提供了extension methods,可让您“完成”该类工作)。
但是正如注释中指出的那样,假设您的问题是正确格式化Date,LocalDate,...实例的格式,那么覆盖toString()
完全是错误的方法。您可以使用DateFormatter将日期对象转换为格式化的日期字符串,有关指导,请参见here。