CodeCoachクラス・アドバイス

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

CodeCoachから提供されるクラス・アドバイスには2種類あります。

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

finalクラスでは、すべてのメソッドはfinalと考えられます。finalメソッドはインライン処理ができ、さらに重要な点は、メソッド表を使用せずに直接コールできることです。

また、クラスにfinalを宣言すると、一般に負荷のかかるinstanceofまたはcheckcastの操作をJVMで実行しやすくなります。

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

今後クラスを拡張する可能性がある場合は、このアドバイスに従う必要はありません。

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

staticとできる可能性のあるクラス
内部クラスからアクセスする外部クラスのすべてのシンボルがstaticの場合、内部クラスもstaticである必要があります。

内部クラスが外部クラスのstatic以外のフィールド、メソッドまたはオブジェクトにアクセスする場合、この内部クラスをstaticにすることはできません。

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

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


Class classname must be compiled with debug info to enable CodeCoach

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


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

 

Copyright © 1997, 2004, Oracle. All rights reserved.