2012-02-04 13 views
7

मैं हर जगह यह पता लगाने की क्या वैल $ editorkit या साधन नीचे $ संकेत है की कोशिश कर रहा खोज की है, लेकिन कोई किस्मत ... कृपया मदद नीचे जावा कोड में एक नजर है ...

private synchronized void updateHtmlEditor(HTMLEditorKit editorkit, StringReader reader) 
    { 
    Runnable runnable = new Runnable(editorkit, reader) 
    { 
     public void run() { 
     try { 
      this.val$editorkit.read(this.val$reader, LinkParser.this.htmlViewEditor.getDocument(), LinkParser.this.htmlViewEditor.getDocument().getLength()); 

     } catch (IOException ex) { 
      Logger.getLogger(LinkParser.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (BadLocationException ex) { 
      Logger.getLogger(LinkParser.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     } 
    }; 
    SwingUtilities.invokeLater(runnable); 
    } 
+4

यह एक decompiled कोड है? – Natix

उत्तर

3

आंतरिक संकेत, सिंथेटिक फ़ील्ड और विधियों के उत्पन्न नामों के लिए जावा कंपाइलर द्वारा $ साइन का उपयोग किया जाता है। यह जावा स्रोत में पहचानकर्ताओं के लिए मान्य है, लेकिन निराश है।

जो कोड आप दिखाते हैं वह एक अज्ञात आंतरिक वर्ग का अपूर्ण कोड जैसा दिखता है। विधि Runnable विधि updateHtmlEditor के भीतर कार्यान्वयन इसके आसपास की विधि के पैरामीटर तक पहुंचता है। उस पहुंच को संभव बनाने के लिए, पैरामीटर को final घोषित करने की आवश्यकता है। जावा बाइट कोड में, अज्ञात वर्ग में तीन अंतिम उदाहरण विशेषताएँ हैं, this$0 बाहरी उदाहरण LinkParser.this, val$editorkit और val$reader बाहरी विधि पैरामीटर और तीन तर्कों वाला एक कन्स्ट्रक्टर, जो गुणों के लिए अपने तर्क निर्दिष्ट करता है।

ध्यान दें कि LinkParser.this.htmlViewEditor बाहरी वर्ग, LinkParser की विशेषता का संदर्भ है। इस नमूने में, बाहरी उदाहरण LinkParser.this के स्पष्ट संदर्भ को छोड़ा जा सकता है।

मूल स्रोत कोड इस तरह दिखता है:

private synchronized void updateHtmlEditor(final HTMLEditorKit editorkit, final StringReader reader) 
    { 
    Runnable runnable = new Runnable() 
    { 
     public void run() { 
     try { 
      editorkit.read(reader, htmlViewEditor.getDocument(), htmlViewEditor.getDocument().getLength()); 
     } catch (IOException ex) { 
      Logger.getLogger(LinkParser.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (BadLocationException ex) { 
      Logger.getLogger(LinkParser.class.getName()).log(Level.SEVERE, null, ex); 
     } 
     } 
    }; 
    SwingUtilities.invokeLater(runnable); 
    } 
+0

आपकी सभी मदद के लिए धन्यवाद दोस्तों ... – scamexdotexe

15

इसका मतलब कुछ खास नहीं है - यह सिर्फ एक पत्र है जो नाम का हिस्सा बनता है, ठीक उसी तरह l या e इससे पहले।

किसी नाम में क्या है और इसकी अनुमति नहीं है इसके बारे में पूरी जानकारी के लिए Identifiers पर जेएलएस अनुभाग देखें।

4

हम वास्तव में नहीं बता सकता मुझे लगता है कि जब से तुम चर घोषणा नहीं प्रदान की थी, लेकिन जावा में $ एक चर नाम का एक हिस्सा हो सकता है, उदाहरण के लिए यदि आप ऐसा कुछ कर सकते हैं:

String str$rr = "Hello"; 
System.out.println(str$rr); 

ऐसा कुछ Hello प्रिंट करेगा।

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