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

时间:2018-11-14 14:54:28

标签: java constructor override private tostring

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

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

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

2 个答案:

答案 0 :(得分:3)

简单的答案是:你不能。

该类javadoc告诉您:

  

公共最终类LocalDate

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

但是正如评论中指出的那样,假设,您的问题是正确格式化日期,LocalDate,...实例,然后覆盖 toString()根本是错误的方法。您可以使用DateFormatter将日期对象转换为格式化的日期字符串,有关指导,请参见here

答案 1 :(得分:0)

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