2009-05-27 9 views
0

私たちのアプリケーション用のJavaコードでは、多くのクラスとメソッドがありますが、アクセスはpublicであり、おそらくパッケージレベルのアクセスが必要なことは確かです。Javaクラスとメソッドのアクセスレベルを分析するツールはありますか?

私がしたいのは、パッケージレベルでパッケージにコードを整理し、各パッケージの外側に実際に必要なものだけを作成することです。これにより、他のリファクタリングが簡素化されるはずです。

私がこれを手伝ってくれるツールがあるかどうか疑問に思っていました。理想的には、すべてのコードを分析して、どのクラスとメソッドにパブリックアクセスがあったかを示すレポートを生成しますが、同じパッケージ内からのみ呼び出されることが理想的です。

Netbeansのオプションを使用すると、これを手助けすることができますが、すべてのクラスとメソッドで手作業で実行し、1行ずつ出力を解析することは永遠になります。

+0

そのようなツールの代金はかかりますか? – zvikico

+0

@zvikicoツールにはお金がかかるかもしれませんが、理想的には無料です。もし$ 30だったら、おそらくそれを得ることができます。おそらく3,000ドルでないなら、私のために買った。 –

+0

異なるアクセス修飾子を持つ可能性があるからといって、そうする必要はありません。これは本当に価値があるのでしょうか? – willcodejavaforfood

答えて

3

私は、バイトコード操作ツールであるProGuardを使用して、過去にデッドコードを見つけました。 ProGuard manualには、その使用方法の例があります。このツールは他にもたくさんのことをしていますが、実際にはその典型的な使い方ではありませんが、デッドコードのアプリケーション全体をスキャンできるのは私が知っている唯一のことです。

編集:質問を誤解しました。おそらくUCDetectorはあなたが望むものです。私はコードベースでUCDetectorを試しましたが、それは仕事をしているようですが、確かにいくつかの方法を検出しました。彼らの視認性が低下してい可能性がクラス。

+0

私が探しているコードは死んでいません。アクセスレベルが間違っているだけです。私は完全に削除することができるメソッドではなく、 "void foo()"となる "public void foo()"というメソッドを探しています。 –

+0

申し訳ありませんが、あなたの質問を誤解しました。おそらくhttp:// www。ucdetector.org/はあなたが望むものです。可視性が保護された、デフォルトまたはプライベートに変更できるコードを検出できると主張しています。私はそれを使っておらず、Eclipseに縛られていることに注意してください。 – deverton

+0

私は自分のコードベースでUCDetectorを試しましたが、それは仕事をするようです。可視性を低下させる可能性のあるいくつかのメソッドとクラスを確実に検出しました。 – deverton

0

netbeans SQE pluginが役立ちます。

FindBugs、PMD、CheckStyle、Lint4jをnetbeansに統合しています。パブリックメソッドをパッケージプライベートなどにすることができるという警告が表示されます。

+0

FindBugs、PMD、CheckStyle、Lint4jは、アプリケーション全体を見るのではなく、クラスごとに機能するように見えます。それらはすべて有用に見えるが、誰も私が探している特定の問題のチェックを持っていないようだ。 SQEプラグインには、有望なDependency Finderも含まれていますが、依存関係は表示されますが、アクセスレベルが大きすぎると例外レポートがないようです。 –

1

安い(と非常におそらくより速く、単一パスのためのツールをインストールするよりも)abstractfinalinterfaceについても同様に検索と置換classpublic classをすることです。再コンパイルしてください。壊れ何を修正

+0

これはクラスに対しては機能しますが、メソッドに対しては機能しません。私はパッケージメソッドを作ることができるパブリッククラスのpublicメソッドを持っているかもしれません。パッケージ内のすべてのクラスのパブリックメソッドをすべて変更するとかなり時間がかかります。 –

+0

メソッドでやりたければ、もっと大きな問題があります。メンバーとコンストラクタへのデフォルトのアクセスは、貧しい人の友人としては便利ですが、できるだけ少数の友達(IFYSWIM)を持つことをお勧めします。 –

関連する問題