如何扩展收藏家课程

时间:2019-02-25 11:43:42

标签: java java-8 java-stream collectors

为什么Collectors类在Java 8中是最终的?我想在自己的班级MyCollectors中扩展Collectors类。在那里,我将添加Collectors类中不存在的其他方法。

2 个答案:

答案 0 :(得分:5)

Collectors是最终的,因为它仅包含static实用程序方法。它无法实例化(其构造函数为private),因此对其进行子类化没有任何意义。

您可以独立于MyCollectors创建自己的Collectors类。 或者,如果您想通过Collectors访问MyCollectors方法,则可以在Collectors类中创建所有MyCollectors静态方法的包装。

答案 1 :(得分:1)

如果您需要实现自己的收集器,则不是要对Collectors实用工具类进行子类化,而是要创建实现Collector接口的类。正如以上伊兰的回答

  

您可以独立于收集器创建自己的MyCollectors类。或者,如果您想通过MyCollectors访问Collector方法,则可以在MyCollectors类中创建所有Collector静态方法的包装。

您可以使用返回Collector自己的实现的方法来创建自己的类