2015-03-02 87 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用戶的實現。

靜態方法可以省去實用程序類,因爲可以在接口中編寫實現。