Java(“某事”)在Java中意味着什么?

时间:2017-03-31 22:27:24

标签: java

我正在研究一些教程并偶然发现了这段代码:

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一样;因此,我不认为这是一个特殊的指令或其他东西。

2 个答案:

答案 0 :(得分:3)

它只是对静态导入的名为$的方法的调用:

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

这只是一个带有奇怪的名称的常规方法。

' $'是Java Language Specification 3.8

标识符的有效字符
  

" Java字母"包括大写和小写ASCII拉丁字母AZ(\ u0041- \ u005a)和az(\ u0061- \ u007a),以及由于历史原因,ASCII下划线(_,或\ u005f)和美元符号($,或\ u0024)。 $符号应仅用于机械生成的源代码,或者很少用于访问旧系统上预先存在的名称。

答案 1 :(得分:3)

您有class ICustomer { public: virtual char* GetName() = 0; virtual char* GetSurname() = 0; virtual char* GetAddress() = 0; }; class CCustomer : public ICustomer { public: virtual char* GetName() { return "Name1"; } virtual char* GetSurname() { return "Surname1"; } virtual char* GetAddress() { return "Address1"; } }; class IExporter { public: virtual void Export() = 0; }; class CExportToExcel : public IExporter { public: virtual void Export() { ICustomer* pCustomer = new CCustomer; printf("%s, %s, %s\n", pCustomer->GetName(), pCustomer->GetSurname(), pCustomer->GetAddress()); } }; class IShopOwner { public: virtual void Execute() = 0; }; class CShopOwner : public IShopOwner { public: virtual void Execute() { IExporter* pExp = new CExportToExcel; pExp->Export(); } }; void main() { IShopOwner* pOwner = new CShopOwner; pOwner->Execute(); }

来自documentation object(T) 的简写别名,根据给定对象创建Selector。< / em>的