这段代码中“ this.this $ 0”的含义是什么?它代表什么?我知道为什么我们使用“ this”,但是我不知道“ this.this $ 0”
class MainActivity$1 implements TextWatcher
{
public void afterTextChanged(Editable paramEditable)
{
}
public void beforeTextChanged(CharSequence paramCharSequence, int paramInt1, int paramInt2, int paramInt3)
{
}
public void onTextChanged(CharSequence paramCharSequence, int paramInt1, int paramInt2, int paramInt3)
{
this.this$0.ChangeToNumber(paramCharSequence.toString());
}
}
-----------------------or ----------------------
class MainActivity$2 implements View.OnClickListener
{
public void onClick(View paramView)
{
this.this$0.startActivity(new Intent(this.this$0, about.class));
}
}
this.this $ 0与Main.access $ 0相同这些神秘符号通常对应于匿名内部类。Java VM不了解它们,仅了解顶级类,因此Java编译器提供了几种解决方法来使内部类起作用。
本地类对其隐含类的实例具有隐式引用,'this $ 0'对应于反编译代码中的该引用。JVM阻止类访问其他类的private方法,因此编译器会生成几种综合的包私有方法,如access $ 0,以便访问封闭实例的私有方法。
Java语言还有许多其他功能,这些功能是通过综合方法(如泛型和协变返回类型)实现的。
我建议您检查这些链接:解码Android的反编译源代码
和:性能提示
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句