在InteliJ IDEA中调试Java期间,美元符号在生成的变量名中意味着什么?是关闭吗?

jhe*_*dus 3 java debugging intellij-idea reactive-programming sodium

在InteliJ中调试Java期间,变量名中的美元符号是什么意思?是关闭吗?请查看下面的图片和代码段。

这是Stream类的一部分:

public final Listener listen(final Handler<A> action) {
    return listen_(Node.NULL, new TransactionHandler<A>() {
        public void run(Transaction trans2, A a) {
            action.run(a);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我怀疑$1in Stream$1@915指的是在上述方法中创建的闭包。我不确定。有人可以确认吗?或如果不是这种情况,请说明在此生成的名称中美元符号的含义是什么?

代码取自Sodium Functional Reactive库,我正在尝试了解其工作原理。

在此处输入图片说明

Ami*_*ani 5

它是对此闭包(如构造)生成的匿名内部类的引用。通常,将编译内部类,并且类文件名将为yourClassName$yourInnerClassName。在使用匿名内部类声明的情况下,由于您没有显式命名它,因此它将显示为使用数字生成的名称。也许这篇文章会有所帮助?