मैंने यह प्रश्न देखा है, लेकिन assert
कीवर्ड के उपयोग के बारे में कुछ और प्रश्न हैं । मैं उपयोग करने के बारे में कुछ अन्य कोडर के साथ बहस कर रहा था assert
। इस उपयोग के मामले में, एक ऐसी विधि थी जो कुछ शर्तो को पूरा करने पर अशक्त हो सकती है। मेरे द्वारा लिखा गया कोड विधि को कॉल करता है, फिर दावा करता है कि यह अशक्त नहीं है, और लौटे ऑब्जेक्ट का उपयोग करना जारी रखता है।
उदाहरण:
class CustomObject {
private Object object;
@Nullable
public Object getObject() {
return (object == null) ? generateObject() : object;
}
}
अब कल्पना करें कि मैं इसका उपयोग इस तरह करता हूं:
public void useObject(CustomObject customObject) {
object = customObject.getObject();
assert object != null;
// Do stuff using object, which would throw a NPE if object is null.
}
मुझे बताया गया कि मुझे हटा देना चाहिए assert
, कि उन्हें कभी भी उत्पादन कोड में उपयोग नहीं किया जाना चाहिए , केवल परीक्षण में उपयोग किया जाना चाहिए। क्या यह सच है?
Objects.requireNonNull
जावा 8 के आने के बाद से आवश्यक नहीं है )।
-ea
या समकक्ष स्पष्ट रूप से सक्षम करना होगा ।