groovy
सुरक्षित नेविगेशन ऑपरेटर
खोज…
मूल उपयोग
Groovy का सुरक्षित नेविगेशन ऑपरेटर NullPointerException
s से बचने की अनुमति देता है, जब चर मान पर विधियों या विशेषताओं तक पहुँच हो सकती है जो null
मानों को ग्रहण कर सकती है। यह nullable_var == null ? null : nullable_var.myMethod()
बराबर है nullable_var == null ? null : nullable_var.myMethod()
def lst = ['foo', 'bar', 'baz']
def f_value = lst.find { it.startsWith('f') } // 'foo' found
f_value?.length() // returns 3
def null_value = lst.find { it.startsWith('z') } // no element found. Null returned
// equivalent to null_value==null ? null : null_value.length()
null_value?.length() // no NullPointerException thrown
// no safe operator used
null_value.length() // NullPointerException thrown
सुरक्षित नेविगेशन ऑपरेटरों का संयोजन
class User {
String name
int age
}
def users = [
new User(name: "Bob", age: 20),
new User(name: "Tom", age: 50),
new User(name: "Bill", age: 45)
]
def null_value = users.find { it.age > 100 } // no over-100 found. Null
null_value?.name?.length() // no NPE thrown
// null ?. name ?. length()
// (null ?. name) ?. length()
// ( null ) ?. length()
// null
null_value?.name.length() // NPE thrown
// null ?. name . length()
// (null ?. name) . length()
// ( null ) . length() ===> NullPointerException
null_value?.name
पर सुरक्षित नेविगेशन null_value?.name
एक null
मान लौटाएगा। इस प्रकार length()
को NullPointerException
से बचने के लिए null
मान पर एक चेक प्रदर्शन करना होगा।
Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow