7
votes

Quelle est la société $ en java? S'il vous plaît jeter un oeil dans le code Java ci-dessous

J'ai cherché partout essayer de comprendre quel est le Val $ Edidorkit ou le signe $ ci-dessous signifie, mais pas de chance ... Aide ... XXX


0 commentaires

4 Réponses :


15
votes

Cela ne signifie rien de spécial - c'est juste une lettre qui fait partie du nom, exactement comme le l avant le ou le e ultérieurement.

voir la section JLS sur identifiants pour plus de détails sur quoi est et n'est pas autorisé dans un nom.


0 commentaires

1
votes

Il est autorisé à avoir le signe du dollar dans les noms variables mais par la convention, il n'est pas utilisé. regarde ici http://docs.oracle.com/javase/tatutorial/java/nutsandbolts /variables.html


0 commentaires

4
votes

Nous ne pouvons pas vraiment dire que je suppose que vous n'avez pas fourni la déclaration de variable, mais en Java, le $ code> peut faire partie d'un nom de variable, par exemple, vous pouvez faire quelque chose comme ça:

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


0 commentaires

3
votes

Le signe $ est utilisé par le compilateur Java pour des noms générés de classes intérieures, de champs synthétiques et de méthodes. Il est valide pour les identificateurs de Java Source, mais découragé.

Le code que vous montrez ressemble à un code décompilé d'une classe intérieure anonyme. L'implémentation anonyme exécutable code> dans la méthode updatehtmleditor code> accède aux paramètres de sa méthode environnante. Afin de rendre cet accès possible, les paramètres doivent être déclarés final code>. Dans le code d'octet Java, la classe anonyme a trois attributs d'instance finale, 0 $ code> contenant l'instance extérieure linkparser.this code>, val $ edikit code> et VAL $ Reader CODE> contenant les paramètres de la méthode externe et un constructeur avec trois arguments, qui attribue ses arguments aux attributs. p>

Notez également que linkparser.this.htmlievitor Code> est une référence à un attribut de la classe externe, linkparser code>. Dans cet échantillon, la référence explicite à l'instance externe linkparser.C'est code> peut être omise. P>

Le code source d'origine ressemble à ceci: p>

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 commentaires