2017-03-31 4 views
2

Ich war auf der Suche in eine Tutorial und stolperte auf diesem Code:

public void run(String... args) throws Exception { 
    eventBus.on($("quotes"), receiver); 
    publisher.publishQuotes(NUMBER_OF_QUOTES); 
} 

Dies ist das erste Mal, dass ich $("quotes") in Java zu sehen. Ich würde mich freuen, wenn mir jemand erklärt, was dort vor sich geht.

Hier ist die Quelle:

https://github.com/spring-guides/deprecate-gs-messaging-reactor/blob/master/complete/src/main/java/hello/Application.java#L53

Update:

Dies ist keine Frage über $ als Java Variablennamen. Ich weiß, dass es ein gültiger Variablenname ist. Das Format von $ ("etwas") sieht jedoch JQuery-ähnlich aus; Daher warf ich mich davon ab zu denken, dass es eine spezielle Richtlinie oder etwas ist.

+5

'import statische reactor.bus.selector.Selectors. $;' –

+1

duplikat von http://stackoverflow.com/questions/7484210/what-is-the-meaning-of-in-a-variable-name – mwallner

+0

$ ist nur eine statische Methode der Selectors-Klasse. Lesen Sie seinen Javadoc, um zu wissen, was er tut. –

Antwort

3

es ist nur ein Aufruf der Methode $ genannt, die statisch importiert wird:

import static reactor.bus.selector.Selectors.$; 

es ist nur eine normale Methode mit einem seltsam Namen.

'$' ist ein gültiges Zeichen für Bezeichner die Java Language Specification 3.8

Die "Java Buchstaben" gehören Groß- und Klein ASCII lateinischen Buchstaben A bis Z (\ u0041- \ u005a) nach und az (\ u0061- \ u007a) und, aus historischen Gründen, der ASCII-Unterstrich (_, oder \ u005f) und das Dollarzeichen ($ oder \ u0024). Das $ -Zeichen sollte nur in mechanisch erzeugtem Quellcode verwendet werden oder selten für den Zugriff auf bereits vorhandene Namen auf Legacy-Systemen.

+0

Danke !!! Ich habe die Import-Zeile verpasst :-) ... – maresa

+0

@maresa ähnlich wie eine Zeile mit 'http: // www.example.com/index' als eine normale Quellcodezeile in der Mitte der Methode- es ist nur eine Bezeichnung ('http:') gefolgt von einem Kommentar ('// ...') –

+0

Das zitierte Zitat zeigt, dass das kein guter Name für eine Funktion ist. –

2

Sie haben eine import static reactor.bus.selector.Selectors.$;

Vom documentation die ein Kurz Hand alias für object(T), der wiederum eine Selector basierend auf dem gegebenen Objekt erstellt.