加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:39:04 所属栏目:Java 来源:网络整理
导读:我有一个 java jar我已经反编译了原始开发者的权限,我们将使用,直到他们可以得到我们的源代码的副本.我遇到了类似于以下内容的类的成员: Classname.access$002(Param1,Param2); 类名是正确的,但是访问$002看起来不正确(除了名字访问$204,其他数字附加到最后
我有一个 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();
}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读