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