2017-03-31 77 views
2

我一直在尋找到一些教程,並無意中發現了這個代碼:

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

這是我第一次看到在Java中$("quotes")。我會很感激有人向我解釋那裏發生了什麼。

這裏的源:

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

更新:

這不是一個問題,大約$如Java變量名。我知道這是一個有效的變量名稱。然而,$(「something」)的格式看起來像JQuery;因此讓我覺得這是一個特殊的指令或什麼東西。

+5

'import static reactor.bus.selector.Selectors。$;' –

+1

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

+0

$只是Selectors類的靜態方法。閱讀它的javadoc以瞭解它的功能。 –

回答

3

它只是叫$方法是靜態導入了一個電話:

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

它僅僅是一個帶有奇怪名正常方法。

'$' 是根據Java Language Specification 3.8

通過 「Java字母」 標識的有效字符包括大寫和小寫的ASCII拉丁字母AZ(\ u0041- \ u005a)和AZ(\ u0061- \ u007a),出於歷史原因,使用ASCII下劃線(_,或\ u005f)和美元符號($或\ u0024)。 $符號只能用於機械生成的源代碼,或者很少用於訪問原有系統上預先存在的名稱。

+0

謝謝!我錯過了導入行:-) ... – maresa

+0

@maresa類似於將'http:// www.example.com/index'作爲正常的源代碼行在方法中間 - 它只是一個標籤('http:')後面加註釋('// ...') –

+0

引用的引用顯示,這不是一個函數的好名字。 –

2

你有一個import static reactor.bus.selector.Selectors.$;

documentation的簡寫別名object(T)這反過來基於給定對象上創建一個Selector