如何扩展Collectors类[重复]

问题描述 投票:2回答:2

这个问题在这里已有答案:

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

java java-8 java-stream collectors
2个回答
5
投票

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

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.