2017-03-31 98 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