我正在研究一些教程并偶然发现了这段代码:
public void run(String... args) throws Exception {
eventBus.on($("quotes"), receiver);
publisher.publishQuotes(NUMBER_OF_QUOTES);
}
这是我第一次在Java中看到$("quotes")
。我很感激有人向我解释那里发生了什么。
这是来源:
更新
这不是关于$作为Java变量名的问题。我知道它是一个有效的变量名。但是,$(“something”)的格式看起来像JQuery一样;因此,我不认为这是一个特殊的指令或其他东西。
答案 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>的