[英]What does it mean if a variable has the name “this$0” in IntelliJ IDEA while debugging 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);
}
});
}
我懷疑是$1
的Stream$1@915
指的是在上面的方法創建的關閉。 我不確定。 有人能證實嗎? 或者如果不是這樣,請解釋美元符號在此生成的名稱中的含義?
代碼取自Sodium Functional Reactive庫,我正在嘗試了解它是如何工作的。
它是對這個閉包生成的匿名內部類的引用,就像構造一樣。 通常,編譯內部類,類文件名為yourClassName$yourInnerClassName
。 對於匿名內部類聲明,由於您未明確命名,因此它將使用數字顯示為生成的名稱。 也許這篇文章會有所幫助?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.