解释反编译的java类的结果代码的问题:MyType.access $ 102

Chr*_*mer 2 java decompiling

我试图在我们正在使用的第三方框架中稍微扩展一个未记录的类.我用jd-gui反编译了.class文件,看到一个像这样定义的内部类:

private class DeactivateAction extends AbstractAction {
    public DeactivateAction() {
        super("Deactivate");
    }

    public void actionPerformed(ActionEvent paramActionEvent) {
        if (MyContainingType.this.someBoolean) {
            MyContainingType.access$102(MyContainingType.this, false);
            MyContainingType.this.add(MyContainingType.this.interceptor);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何解释"访问$ 102"这一行.MyContainingType扩展了javax.swing.JLayeredPane.这不能为我编译,所以如何解释这个并在我的扩展类中正确转换它?

eri*_*son 5

这是一个合成访问器.

甚至内部类也无法真正访问其封闭类的私有成员.编译器"合成"默认(包)访问方法,以允许内部类使用封闭类的私有字段.

您应该能够查看封闭的类来弄清楚access$102正在做什么.

javap使用-c选项的工具也非常有用.