2013-07-29 13 views
10

मेरा दावा कथन कोई परिणाम क्यों नहीं देता है? मुझे लगता है कि पहला दावा कथन विफल होना चाहिए, लेकिन मुझे ग्रहण पर कुछ भी दिखाई नहीं दे रहा है।जावा दावा त्रुटि त्रुटि फेंक नहीं देती

मैं इस कार्यक्रम को चलाने के लिए ग्रहण का उपयोग कर रहा हूं।

package java.first; 

public class test { 
    public static void main(String[] args) throws Exception { 
    String s = "test1"; 
    assert (s == "test"); 
    s = "test"; 
    assert (s == "test"); 
    } 
} 

उत्तर

7

आप -ea तर्क (-enableassertions का संक्षिप्त रूप) के साथ दावे को सक्षम करने के लिए है।

ग्रहण में:

  • परियोजना पर "रन के रूप में" राइट-क्लिक करें, तो"रन विन्यास ..."
  • का चयन करें "तर्क" टैब
  • "वीएम तर्क" फ़ील्ड में -ea रखो।
  • करें "लागू करें"

अब, चल रहा है एक AssertionError कारण चाहिए।

18

आपको अपने JVM विकल्पों में -ea (Assertions सक्षम करें) सेट करने की आवश्यकता है।


असंबंधित, लेकिन आप लगभग हमेशा string1.equals(string2) बजाय == चाहते हैं।

+0

से "उधार" उस पर विस्तृत करने के लिए, आप '==' ऑपरेटर को समझ सकते हैं जैसे कि यह निम्नलिखित प्रश्न का उत्तर: यह अन्य वस्तु की इसी संदर्भ को यह वस्तु अंक के संदर्भ में ? यह 2 लोग स्मृति का एक ही हिस्सा है, जो केवल सच है अगर यह 1 और आप आवेदन (सिंगलटन) के पूरे संदर्भ में इस तरह के वस्तु का केवल 1 उदाहरण मौजूद है में आवंटित कर रहे हैं। दूसरे शब्दों में एक वस्तु का एक उदाहरण केवल 'ही == है'। जब से तुम यह एक और उदाहरण है जो एक ही मूल्य आप उपयोग करने की आवश्यकता धारण करने के लिए तुलना कर रहे हैं 'equals'method के रूप में ऊपर कहा गया है। – VallaDanger

+0

जब आप कहते हैं '(रों ==" परीक्षण ")' आप वास्तव में मूल्य 'test' साथ स्ट्रिंग का एक नया उदाहरण बनाने, इसलिए पूछ रहे हैं कि कि नया उदाहरण' है == '' को s' बिल्कुल नहीं है 'सच '' जब तक आप String.intern() 'विधि है जो यह सुनिश्चित करेंगे कि एक ही मान होने सभी स्ट्रिंग्स एक ही स्मृति का हिस्सा का उपयोग करें। वहाँ वास्तव में और अधिक वस्तुओं समानता, कारण है कि मैं प्रभावी जावा (2 संस्करण, अध्याय 3, मद 8) एक मौका देने की सिफारिश करेंगे के बारे में पता है। – VallaDanger

1

आपको इसे -ea तर्क का उपयोग करके सक्षम करना होगा।

4

आपको रनटाइम पर दावा जांच चालू करने की आवश्यकता है। जावा के लिए Oracle प्रलेखन राज्यों:

विभिन्न स्तरों पर दावे को सक्षम करने के -enableassertions, या -ea, स्विच का उपयोग करें। विभिन्न ग्रॅन्युलैरिटीज़ पर दावे को अक्षम करने के लिए, -डिसेबलसेरशन, या -डा, स्विच का उपयोग करें। http://docs.oracle.com/javase/1.4.2/docs/guide/lang/assert.html#enable-disable

ऑरेकल वेबसाइट पर

पूर्ण विवरण ग्रहण अंदर चलाने कार्यक्रमों आप मापदंडों ग्रहण के साथ अपने कार्यक्रम चलाता है को संशोधित करने की आवश्यकता होगी के लिए रन-टाइम विकल्प बदलने के लिए। यह करने के लिए कैसे ग्रहण के अपने संस्करण के आधार पर भिन्न है, लेकिन यह इस प्रकार ग्रहण यूरोपा में काम करता है होगा ...

  • ओपन भागो संवाद (इस "रन" मेनू के तहत एक विकल्प होना चाहिए)।
  • टैब पर क्लिक करें, "(x) = तर्क।"
  • "वीएम तर्क" के लिए क्षेत्र में, प्रविष्टियों को सक्षम करने के लिए enter -ea।
  • "लागू करें" बटन पर क्लिक करें।

उत्तर http://www.coderanch.com/t/416987/vc/enable-Assertions-eclipse

संबंधित मुद्दे