为什么有人会在java 1.8中的接口中定义静态方法?

aks*_*tia 1 java static-methods interface java-8

为什么任何人在JAVA 1.8中的接口中定义静态方法?

我需要知道静态方法会派上用场的不同示例/用例/要求.

接口中的静态方法如何对开发人员有益?

ern*_*t_k 11

接口中的静态方法有很多用例.在最常见的是迄今为止,虽然,是使人们轻松地创建各自的接口的实例工厂方法.

考虑这些例子:

Comparator.comparing
List.of
Set.of
Stream.of, Stream.generate
Run Code Online (Sandbox Code Playgroud)

如果接口中没有这些工厂方法,那么在不同的实现类中会有太多的构造函数调用.

其中一些示例仅在Java版本9中添加,但该功能开启了许多可能性.

这些静态方法也用于不同的目的.现在可以Collections.sort在正确的位置实现类似的方法Collection.sort,从而避免不必要的额外类.