17.5. フォールバックの例
これは、フォールバックが実装されたときに発生するものです。
Person( age == 50 ) // If Person.getAge() does not exists, this falls back to: Person( age() == 50 )
Person( age == 50 )
// If Person.getAge() does not exists, this falls back to:
Person( age() == 50 )
これは、ネストされたプロパティーのようになります。
Person( address.houseNumber == 50 ) // this is the same as: Person( getAddress().getHouseNumber() == 50 )
Person( address.houseNumber == 50 )
// this is the same as:
Person( getAddress().getHouseNumber() == 50 )
警告
ステートフルセッションでは、ネストされたアクセサーを使用する場合は注意が必要です。作業メモリーはネストされた値を認識しないため、それらが変更するタイミングは分からないためです。親参照のいずれかが作業メモリーに挿入されている間は、不変に考慮してください。ネストされた値を変更する場合は、すべての外部ファクトを更新済みとしてマークする必要があります。上記の例では、
houseNumber が変更されると、その Address が指定された Person は更新済みとしてマークされる必要があります。