產生這個問題的關鍵是因為調用者依賴於方法的返回值,並強化了方法定義的後置條件(不允許為null值),但是並不能修改原來方法定義的後置條件,因為其它地方需要保持原來的 定義。解決辦法是提供擴展了原方法契約(Contact,根據Design by Contact的思想,方法定義就是一個調用者和實現者之間的契約)的新方法,因為擴展方法要保證返回適用的值(使用“適用”,是因為null並非無效,只是不適應當前調用處),所以將它稱之為Safely方法。Safely方法保證返回 適用的值,並提供統一的異常處理方式,調用者不需要再處理返回null對象的情況。