string - Setting static objects in java -


मेरे पास एक वर्ग GlobalData

  सार्वजनिक वर्ग GlobalData { सार्वजनिक स्थिर स्ट्रिंग SERVER_ROOT; सार्वजनिक स्थिर स्ट्रिंग LOGIN_JSP = GlobalData.SERVER_ROOT + "login.jsp"; सार्वजनिक स्थिर स्ट्रिंग HOME_JSP = GlobalData.SERVER_ROOT + "s / home.jsp"; सार्वजनिक स्थिर स्ट्रिंग लॉगआउट = GlobalData.SERVER_ROOT + "लॉगआउट"; सार्वजनिक स्थैतिक ServletContext SERVLET_CONTEXT; }   

मैं संदर्भ से इन तारों को सेट करता हूं

  GlobalData.SERVLET_CONTEXT = contextEvent.getServletContext (); GlobalData.SERVER_ROOT = GlobalData.SERVLET_CONTEXT.getContextPath () + "/"; System.out.println ("सेटिंग सर्वर रूट:" + GlobalData.SERVER_ROOT); System.out.println ("सेटिंग होम जेस्प:" + GlobalData.HOME_JSP); System.out.println ("सेटिंग लॉगिन:" + GlobalData.LOGIN_JSP); System.out.println ("सेटिंग लॉगआउट:" + GlobalData.Logout)   

आउटपुट है:

  सेटिंग सर्वर रूट : / JCMM / सेटिंग होम jsp: nulls / home.jsp सेटिंग लॉगिन: nulllogin.jsp सेटिंग लॉगआउट: nullLogout   

मुझे यह व्यवहार नहीं समझ सकता जब कोई GlobalData वर्ग है, तो कोई भी पा सकते हैं, समस्या कहाँ है?

Intialized, सभी स्थिर चर सेट कर रहे हैं। SERVER_ROOT के लिए कोई मान नहीं है, इसलिए इसे null पर आरंभ किया जाता है। फिर अगले 3 चर को आरंभ किया जाता है। स्ट्रिंग को जोड़ने के लिए + का उपयोग करते समय, स्ट्रिंग "null" में एक null परिणाम होते हैं, इसलिए 3 मानों में से प्रत्येक LOGIN_JSP , HOME_JSP , और लॉगआउट "null" से शुरू होता है।

बाद में, आप SERVER_ROOT सेट करते हैं, लेकिन आप अन्य 3 अपडेट नहीं करते हैं, इसलिए वे मोर्चे पर "अशक्त" के साथ तार के रूप में रहते हैं।

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -