CodeCoachクラス・アドバイス

CodeCoachは、クラス修飾子を安全に変更できる場合にアドバイスします。

CodeCoachによって提供されるクラス・アドバイスには、次の2つのタイプがあります。

finalとできる可能性のあるクラス
拡張されることのないクラスは、finalとして宣言できます。

finalクラスでは、すべてのメソッドをfinalとみなすことができます。finalメソッドはインライン化が可能ですが、より重要な点は、finalメソッドはメソッド表を使用することなく直接コールが可能であることです。

また、クラスをfinalとして宣言すると、JVMでinstanceof/checkcast操作を実行できますが、一般的にこの操作は非常にコストがかかります。

finalとして宣言できるクラスがCodeCoachによって検出された場合、このクラスのメソッドに対してfinalメソッドのアドバイス(MFIN)は提供されません。

将来クラスを拡張する予定がある場合は、これを実行しないでください。

finalとできる可能性のあるクラス・アドバイスのキーワードは、CFINです。

staticとできる可能性のあるクラス
内部クラスがアクセスする外部クラスのすべての記号がstaticの場合は、内部クラスもstaticになります。

内部クラスが1つでも外部クラスのstaticでないフィールド、メソッドまたはオブジェクトにアクセスする場合は、内部クラスはstaticにはなりません。

staticとできる可能性のあるクラス・アドバイスのキーワードは、CSTAです。

クラスがCodeCoachで実行されているが、デバッグ情報がクラスに含まれていない場合、CodeCoachによって次の警告が表示されます。


Class classname must be compiled with debug info to enable CodeCoach

このメッセージを削除するには、CodeCoachから該当するクラスを除外するか、デバッグ情報を有効にしてコンパイルする必要があります。デバッグ情報を有効にするには、「プロジェクト・プロパティ」ダイアログで該当するオプションを選択するか(「コンパイラ」ノードから「デバッグ情報を含める」を選択)、コマンドラインのojcの-gスイッチを使用します。すべてのサード・パーティ製のクラスを除外する必要があります。


CodeCoachを使用したコード品質の改善
CodeCoachアドバイス・タイプを使用可または使用不可に設定
CodeCoachアドバイス・レベルの設定
コマンドラインからのCodeCoachの使用