2015-03-02 50 views
-2

在java 8中引入静态方法和默认方法有什么好处,因为我发现它会增加代码中的复杂性和模糊性。请带一些这个。java中允许声明静态方法这样做的好处是什么

+0

你能解释一下“你的代码会增加复杂性和模糊性”吗? – Pshemo 2015-03-02 20:07:03

+1

请参阅[这里](http://stackoverflow.com/q/19998309/2711488)和[这里](http://stackoverflow.com/q/25098937/2711488) – Holger 2015-03-03 09:21:54

回答

2

优点很明显:界面中的静态方法允许将工厂(如Stream.of)放置在他们所属的地方。以前,您需要一个StreamUtil类或类似的来保存它们。为了在Collections API中引入面向Stream的良好性,Defender方法(“默认”)是绝对必须的,并且它们是一个非常有用的特性,允许使用便捷方法自由增长API,这些方法只依赖其他方法公共API。

没有复杂性或模糊性被添加到您的代码,特别是因为静态方法不可继承。

1

具有默认方法的最大优点是您可以为新功能演化API,即使它已经发布也不会破坏API用户的实现。

静态方法可以省去实用程序类,因为可以在接口中编写实现。

相关问题