2016-07-10 6 views
0

古代のJavaアプリケーションをアップグレードするのに忙しくて、コンパイルした後、コード構造を再編成するように設定しました。 ONEの大規模なフォルダには現在500個のファイルがあるので、それをもっと素敵なフォルダ構造に分割する必要があります。私はいくつかのファイルを移動する瞬間、コンパイラは"X() is not public in <BaseClass>"のヒープのヒープを生成します。はい、両側にJavaプロジェクトをリファクタリングすると、何百もの "X not public"エラーが発生する

をパッケージ文およびインポートを追加リファクタリングツールは、どうやらすべてのクラスは、暗黙的な可視性とそのすべてのメンバーを持っている、すなわち:

別に
void setSelection(int x){...} 

手動で可視属性を追加することから、より高速な方法があります少ない編集で混乱を解決するには?

public void setSelection(int x){...} /// Yay! only 5000 more occurrences to go! 
+0

あなたはリファクタリングの目的のためにEclipse IDEを使用することができます、あなたは同じを使用していますか? –

+0

私はNetBeansを使用しており、リファクタリングの基本的なサポートがいくつかあります。しかし、プロジェクトは、すべてのファイルが1つのフォルダ内にあるときにコンパイルされました。整理し始めると、これらのエラーが生成されます。 –

答えて

1

私はあなたが手でこれを修正する必要があると思います。各クラスおよびクラスメンバーについて、アクセスであるべきかどうかを、publicprotectedprivateまたはプライベートパッケージかどうかを判断します。モジュール化と抽象化の境界を作成/修正することは、私がダムツールに信頼するものではありません。

はい、数百のエラーメッセージが表示されている場合は、修正する必要があります。しかし最終的な結果はより良い品質のコードになります...あなたが盲目的にすべてのパッケージをプライベートに変更した場合は、publicになります。

1

regexを使用してNetBeansで検索置換を試すことができます。 Netbeansはよくわかりませんが、それは可能であり、日食ではそれは良いことが分かります。 ヒント:置き換えを確認する前にプレビューを見てください。あなたのケースでは例えば

、あなたはそれを使用することができます:あなたはあなたのメソッドの戻り値としてその「無効」他のものを持っている

search regex = (^[^\n\w]*void\s.*$) 
    replacement = public $0 

場合、あなたはあなたのためのより適切な表現で「無効」に置き換えることができます戻り値の型。

関連する問題