为什么Collectors
类在Java 8中是最终的?我想在自己的班级MyCollectors
中扩展Collectors类。在那里,我将添加Collectors
类中不存在的其他方法。
答案 0 :(得分:5)
Collectors
是最终的,因为它仅包含static
实用程序方法。它无法实例化(其构造函数为private
),因此对其进行子类化没有任何意义。
您可以独立于MyCollectors
创建自己的Collectors
类。
或者,如果您想通过Collectors
访问MyCollectors
方法,则可以在Collectors
类中创建所有MyCollectors
静态方法的包装。
答案 1 :(得分:1)
如果您需要实现自己的收集器,则不是要对Collectors
实用工具类进行子类化,而是要创建实现Collector
接口的类。正如以上伊兰的回答
您可以独立于收集器创建自己的MyCollectors类。或者,如果您想通过MyCollectors访问Collector方法,则可以在MyCollectors类中创建所有Collector静态方法的包装。
您可以使用返回Collector
自己的实现的方法来创建自己的类