簡體   English   中英

在InteliJ IDEA中調試Java期間,美元符號在生成的變量名中的含義是什么?是關閉嗎?

[英]What does dollar sign mean in generated variable names during debugging Java in InteliJ IDEA ? Is it a closure?

在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);
        }
    });
}

我懷疑是$1Stream$1@915指的是在上面的方法創建的關閉。 我不確定。 有人能證實嗎? 或者如果不是這樣,請解釋美元符號在此生成的名稱中的含義?

代碼取自Sodium Functional Reactive庫,我正在嘗試了解它是如何工作的。

在此輸入圖像描述

它是對這個閉包生成的匿名內部類的引用,就像構造一樣。 通常,編譯內部類,類文件名為yourClassName$yourInnerClassName 對於匿名內部類聲明,由於您未明確命名,因此它將使用數字顯示為生成的名稱。 也許這篇文章會有所幫助?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM