0
我想知道Java 8中的默認方法對擴展方法或像Scala中的隱式轉換帶來了什麼好處?看來,我無法用外部庫的默認方法修改現有的代碼,這很奇怪。爲什麼java 8使用默認方法而不是擴展方法
我想知道Java 8中的默認方法對擴展方法或像Scala中的隱式轉換帶來了什麼好處?看來,我無法用外部庫的默認方法修改現有的代碼,這很奇怪。爲什麼java 8使用默認方法而不是擴展方法
因爲它的目的與您描述的用例完全相反。默認方法允許庫代碼更改其API,而不需要更改調用代碼&重新編譯。它只是一個幫助API兼容性的工具,它不是覆蓋第三方代碼實現細節的工具。
謝謝。但我無法理解這個原因。爲什麼他們受到如此小小的增強限制? – aim
嗯,這不是真的*解釋*我知道的任何地方(至少最初的JSR規範沒有擴展此行爲的任何基本原理)。但是我想象的原因是,與Java 7相比,這是一個小得多的入侵式更改,因此更容易實現並獲得批准。 – user268396