मैं एक जावा समारोह testForNullक्या फ़ंक्शन में पारित चर के नाम को खोजने के लिए जावा में कोई तरीका है?
public static void testForNull(Object obj)
{
if (obj == null)
{
System.out.println("Object is null");
}
}
कहा जाता है मैं इसका उपयोग सुनिश्चित करने के लिए वे अशक्त नहीं हैं एक से अधिक ऑब्जेक्ट का परीक्षण करने के लिए है। लेकिन, मैं इस तरह के चर के नाम बताने में असमर्थ हूं।
उदाहरण के लिए। अगर मैं कहूँ
testForNull(x);
testForNull(y);
testForNull(z);
मैं बता नहीं सकता जो तीन लाइनों की वजह से उत्पादन "ऑब्जेक्ट रिक्त है"। बेशक, मैं बस कार्य करने के लिए दूसरा पैरामीटर जोड़ें और
testForNull(x, "x");
testForNull(y, "y");
testForNull(z, "z");
की तरह कुछ है लेकिन मैं जानना चाहता हूँ कि क्या यह यह स्पष्ट रूप से गुजर बिना वैरिएबल का नाम निकालना संभव है चाहते हैं कर सकते हैं। धन्यवाद।
[प्रतिबिंब] के साथ भी नहीं (http://stackoverflow.com/questions/744226/java-reflection-how-to-get-the-name-of-a-variable)। – paislee
इस के लिए जिम्मेदार भाषा में कुछ भी नहीं है। हालांकि, मुझे लगता है कि यह एक अतिरिक्त प्रसंस्करण उपकरण (उदाहरण के लिए बाइटकोड का निरीक्षण/संशोधित) के साथ किया जा सकता है। वैकल्पिक रूप से, ऐसे टूल का उपयोग करें जो मेल खाने वाले मानों से स्वत: भरने वाले उचित टेम्पलेट्स को सम्मिलित कर सके ;-) –
आपका कथन 'मैं नहीं बता सकता कि तीन पंक्तियों में से कौन सा "ऑब्जेक्ट शून्य है" आउटपुट। आपके आउटपुट में केवल सच है। आप नए अपवाद का उपयोग कर सकते हैं ("ऑब्जेक्ट शून्य है")। प्रिंटस्टैकट्रेस यह पता लगाने के लिए कि यह कहां था, या आप डीबगर का उपयोग कर सकते हैं और ब्रेकपॉइंट डाल सकते हैं। यह ऐसी चीज की तरह दिखता है जो एक भाषा सुविधा के बजाय बेहतर लॉगिंग, या डीबगर की मांग करता है। –