Java のメソッドを default メソッドに自動変換するツールを作りました論文.
default 修飾子とは Java8 で追加された修飾子で,interface のメソッドにつけることでそのメソッドは実装を持つことができる. default メソッドの利点として,無駄なスケルトン実装を消す事ができるという事が挙げられる. スケルトン実装とは,interface を実装した抽象クラス上でメソッドの一部を実装し,それを継承したクラスですべてのメソッドを実装するといった感じのデザパタである(多分). default メソッドをうまく使うことで,中間にある抽象クラスを実装する必要がなくなる.
これだけだと既存のメソッド引き上げとあまり変わらないような気がするが,それとは異なる困難な点も多数挙げられている.
そのため,リファクタリング手法としては,メソッド引き上げとは分けて考える必要がある.
本論文では,このリファクタリング手法で対処すべき問題点について論じている. また,これを自動で行うツールを実装し,Eclipse のプラグインとして公開している.