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