Groovy : 可以避免NullPointerException的安全屬性訪問

在Groovy中實現安全的屬性訪問是非常簡單的事情。假如我們有下面一個簡單的數據模型:


class Company {
Address address
String name
}

class Address {
Street street
String postalCode
String city
}

class Street {
String name
String number
String additionalInfo
}


我們想要把街道名稱打印出來,但是我們不知道是不是所有的實例都可用。爲了防止出現NullPointerException異常,我們需要這樣寫代碼:


// company可能爲null.
if (company != null && company.getAddress() != null && company.getAddress().getStreet() != null) {
println company.address.street.name
}


如果用Groovy你可以這樣簡單的實現:


// company可能爲null.
println company?.address?.street?.name


如果中間的任何一個對象是null,整個表達式返回null。而不會產生NullPointerException。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章