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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章