关于java:如何扩展Collectors类

How to extend Collectors class

本问题已经有最佳答案,请猛点这里访问。

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


Collectors是最终的,因为它只包含static实用方法。它不能被实例化(它的构造函数是private),因此对它进行子类化是没有意义的。

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


如果您需要实现您自己的收集器,那么它不是关于子类化Collectors实用程序类,而是关于创建实现Collector接口的类。正如上面的Eran所回答的那样

You can create your own MyCollectors class independent of Collectors. Or if you want to access Collectors methods via your MyCollectors, you can create wrappers of all the Collectors static methods within your MyCollectors class.

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