情報科学屋さんを目指す人のメモ

方法・手順・解説を書き残すブログ。私と同じことを繰り返さずに済むように。

Eclipse:「Move Type to New File」でリファクタリングするときの注意点メモ

Eclipse (60) リファクタリング (1)

Eclipse(+Java)で初めて「Move Type to New File」の機能を使ったので、そのとき気が付いたちょっとしたことをメモ。

Move Type to New Fileとは

「Move Type to New File」はリファクタリング機能のひとつで、ネストされたクラス(今回は内部クラス)を、新しい.javaファイルに展開し、通常のクラスに変換してくれる機能です(ローカルクラスとかにも使えるかは未確認)。

private field の default化

この変換をするとき、エンクロージングクラスが、ネストされたクラスのprivate fieldにアクセスしている場合、そのprivate fieldを、アクセス修飾子無し(default)のfieldに変換します

いちよ、「problems」として、プレビュー前に表示されます。

The visibility of field ... will be changed to default.

したがって、同じパッケージからアクセスできるfieldを持ったクラスが生成されます

というわけで、これが嫌な場合は、例えば「setter・getter」を配置しておくなりしたほうが良いと思います。そこまで自動でやるオプションは見当たりませんでした。

ちなみに、fieldをカプセル化するリファクタリング機能は「Encapsulate Field」です。

感想

この機能を初めて使ったので(滅多に使うものじゃない)、へー、こうするのかー、と思いました。

エンクロージングクラスが、内部クラスに対してどのようにアクセスしているか(どのfileldにアクセスしているのか・内部クラスである必要性)を確認するのにも、この機能は使えそうです

ちなみに、変換後、普通に赤い波線が出ました。

コメント(0)

新しいコメントを投稿