Java 如何扩展收集器类

Java 如何扩展收集器类,java,java-8,java-stream,collectors,Java,Java 8,Java Stream,Collectors,为什么收集器类在Java8中是最终类?我想在我自己的类中扩展Collectors类MyCollectors。在那里,我将添加收集器类中不存在的其他方法。收集器是最终的,因为它只包含静态实用方法。它不能被实例化(它的构造函数是私有的),因此对它进行子分类没有意义 您可以独立于收集器创建自己的MyCollectors类。 或者,如果您想通过MyCollectors访问收集器方法,您可以在MyCollectors类中创建所有收集器静态方法的包装器。如果您需要实现自己的收集器,则不需要对收集器实用程序类

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

收集器
是最终的,因为它只包含
静态
实用方法。它不能被实例化(它的构造函数是
私有的
),因此对它进行子分类没有意义

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

如果您需要实现自己的收集器,则不需要对
收集器
实用程序类进行子类化,但是关于创建实现
收集器
接口的类。正如上面Eran所回答的

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


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

是的,我想通过MyCollectors方法访问收集器方法。Wrappers的意思是要我将所有方法从Collectors类复制到MyCollectors类吗?@Prasath的意思是复制方法签名并让MyCollectors方法调用相应的Collectors方法。但我不会这么做,因为这对我来说似乎毫无意义。如果他们在下一次更新中在收集器类中添加了另一个新方法,会发生什么?我需要在MyCollectors课上做同样的事情吗?如果是的话,那么我的问题还有其他解决方案吗?正如我所说的,我不会那么做。只需同时使用这两个类(
收集器
MyCollectors
)。您不需要一个类来包含所有收集器实用程序方法。好的,我将在MyCollectors类中单独保留我的方法。嘿,我的问题不是在java中使用final类。请仔细检查我的问题。我想将Collectors类扩展到MyCollectors类。不解决我的问题普拉萨,我已经看过你的问题了。简单而快速的回答是:您根本无法扩展
收集器
。较长的答案是,您的问题对社区几乎没有价值,因为“为什么最终类不能有任何子类?”的解释(在本例中是从收集器继承的类)在前面提到过。下面的Eran解决方案应该可以让您满意地理解初始逻辑有缺陷的原因。没有任何东西可以阻止您创建名为
MyCollectors
的类,并向其添加
Collector
工厂方法。子类化
收集器应该有什么好处?