「ドット」表記法を使用して関連オブジェクトの値を参照する場合は、.
演算子を使用するのみでなく、Groovyの安全なナビゲーション演算子?.
を使用する必要があります。
これにより、演算子の左側がnullと評価された場合、実行時にNullPointerException
が回避されます。 たとえば、トラブル・チケットの作業に割り当てられたスタッフを表すAssignedTo
という参照フィールドを持つTroubleTicket
オブジェクトを考えてみます。 チケットが割り当てられる前にAssignedTo
フィールドがnull
になる可能性があるため、関連オブジェクトのフィールドを参照するコードでは、次に示すように安全なナビゲーション演算子を使用する必要があります:
// access related lookup object and access its record name
// Using the ?. operator, if related object is null,
// the expression evaluates to null instead of throwing
// NullPointerException
def assignedToName = AssignedTo_Obj_c?.RecordName