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。