当您有一个变量,如在Java中访问$002时,意味着什么?

我有一个 java jar我已经反编译了原始开发者的权限,我们将使用,直到他们可以得到我们的源代码的副本.我遇到了类似于以下内容的类的成员:
Classname.access$002(Param1,Param2);

类名是正确的,但是访问$002看起来不正确(除了名字访问$204,其他数字附加到最后,还有其他几个),我想知道这是否意味着Java中的任何东西,或者是因为反编译操作是不完整的.

我正在使用JD-GUI反编译这些类.

还有一点值得一提的是,没有与$002方法相同的签名方法,至少在Classname类中.

解决方法

访问$XXX方法是从内部非静态类到嵌套类的成员的调用.
public class DummyDummy {

private int x = 0;
private Inner i = new Inner();
private int foo(int a,int b) {
    return a+b+x;
}

private class Inner {
    void doIt() {
        System.out.println(
         // Here,DummyDummy.access$0(DummyDummy,int,int) is called 
         // which calls DummyDummy.foo(int,int)
             foo(1,2)                 );
    }
}

public static void main(String[] args) {
    new DummyDummy().i.doIt();
}

}

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...