基本的なカスタマイズ > ユーザーインタフェースのカスタマイズ > UI の情報の表示 > UI の検証 > ソリューション > その他のヒント、コツ、避けるべきこと > Null 値の処理
  
Null 値の処理
ある製品の特定のページの特定の操作について、バリデータまたはフィルタを記述し、ビジネスロジックを実行するために、UIValidationCriteria のいずれかの属性を必要とする場合があります。たとえば、情報ページの第 3 レベルのテーブルで作業しているとします。ジェネリック部品の情報ページについては、そのテーブルのツールバーに操作を表示したくない場合があります。そのような場合は、以下のようにします (このコードは例として参照し、写さないでください):
if
(((WTPart)validationCriteria.getContextObject().getObject()).getGe
nericType()
.equals(GenericType.GENERIC)){
...
これは、部品詳細ページで操作を試しただけのテストケースであれば問題なく動作します。しかし、その操作がホームページ、または製品リストページのいずれかのテーブルのツールバーに表示されたらどうでしょうか? そのようなページからは、上記のコードは NullPointerException をスローします。validationCriteria.getContextObject() が null を返すからです (正しい動作です)。
これを回避するにはいくつか方法があります。まず、UIValidationCriteria から取得した値をチェックし、null でないことを確認する方法があります。値が null の場合は、警告を記録し、super.[実装している任意のメソッド](key, criteria, locale); を呼び出します。
別の方法としては、比較を行うときに、"予想される" 値で .equals オペレーションを使用します。以下に例を示します。
if
(ComponentType.WIZARD.equals(validationCriteria.getComponentType()
)
NOT
if
(validationCriteria.getComponentType().equals(ComponentType.WIZARD
))
通常、作成した使用シナリオで null 値が検証の続行を許可しないというだけでは、すべての使用シナリオですべての動作を停止させることにはなりません。