java反编译

2024-01-04

当使用java反编译器(http://java.decompiler.free.fr/)反编译特定的jar时,我得到了一些奇怪的代码,我无法识别是什么。有人能帮我吗?代码是这样的:

Foo.access$004(Foo.this);

or this

Bar.access$006(Bar.this);

or else

Baz.access$102(Baz.this, true)

这些方法是什么access$004, access$006 and access$102?


创建这样的综合方法是为了支持访问内部类的私有方法。由于内部类不是初始 jvm 版本的一部分,因此访问修饰符无法真正处理这种情况。解决方案是创建额外的包可见方法,委托给私有实现。

public class Example {
    private static class Inner {
         private void innerMethod() { ... }
    }

    public void test() {
        Inner inner = ...
        inner.innerMethod():
    }
}

编译将创建一个新方法Inner像这样的类:

static void access$000(Inner inner) {
    inner.innerMethod();
}

并替换中的调用test像这样的方法:

Inner.access$000(inner);

静态的access$000包是否可见,可以从外部类访问,并且在同一个包内Inner它可以委托给私有类innerMethod.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java反编译 的相关文章

随机推荐

  • Scanf 函数在查找 %d 匹配项时是否忽略 Enter 键?

    我是 C 语言新手 正在阅读 Kim N King 的书来学习它 它说scanf 查找忽略空格的数字模式 但我认为它也会跳过 Enter 键 如果它寻找字符 它显然也会包含空格 因此在这个示例代码中我必须使用getchar 在第二个之前清除
  • 在 tmux 2.4 上如何一次性进入复制模式并开始搜索?

    我正在尝试将 F1 键绑定到 进入复制模式 开始反向搜索 我在网上唯一找到的是 bind key F1 copy mode send key 然而 这似乎不适用于 tmux 2 4 有没有办法让它在所有 tmux 版本上工作 这有效 bin
  • 这个 git smudge/clean 过滤器有什么问题?

    我想在我的 git 存储库中应用此过滤器 以便在签出期间从解决方案文件中删除一个部分 并在提交期间添加此部分 这是我要删除或添加的部分 GlobalSection SubversionScc preSolution Svn Managed
  • Heroku Ruby 版本无法升级?

    我正在努力更改 Heroku 上的 Ruby 版本 我使用 Ruby 2 0 0 和 Rails 4 我的 Gemfile 有 source https rubygems org ruby 2 0 0 Heroku 中的路径指向 herok
  • 如何处理 Swing 中图像显示的错误文件选择

    我正在学习 Swing 并编写了一个应用程序 可以让用户选择图像文件并将其显示在JPanel 它有效 但我想处理以下情况 用户没有选择任何文件 用户选择非图像文件 在这些情况下我想清除JPanel并在文本区域显示错误消息 我尝试按如下方式执
  • Android 地图上类似 iphone 的注释

    Inside my android map I have three overlays looking like this 我想要的是当我点击每个覆盖层以获得类似 iPhone 标注的内容时 与您在第二张图片 覆盖层顶部 上看到的内容类似
  • 如何根据每个项目在 IntelliJ 中配置编辑器的右边距

    有没有办法在每个项目的基础上配置右边距 列 在 代码样式 gt 常规 下 OR AND 是否有一种方法可以在每种语言的基础上配置相同的值 例如 我希望我的 Java 代码以 90 列结束 但我的 HTML 以 120 列结束 Thanks
  • FCM 安排推送通知的发送日期或时间

    我已经使用 FCM 控制台发送推送通知 它有一个选项来安排交付日期 但在参考资料中 此 API 并未记录为选项 我需要知道是否可以通过 POST 请求推送具有预定义交付日期的通知 如果您正在寻找用于计划推送的 FCM 公共 API 或可在其
  • 在 IIS 上发布时, 出现错误

    我有一个使用默认方法的测试 wcf 服务 并且 Web 配置是
  • Flask:如果路径是目录或文件,则处理捕获所有不同的 url

    如何制作一条捕获所有路径 仅处理目录和处理文件的路径 下面是一个简单的例子 from flask import Flask app Flask name app route foo def foo file return Queried f
  • 如何使用 C++ 将不同长度的整个 .txt 文件读取到数组中?

    我正在制作一个移位密码 从文件中读取文本并对其进行解码 解密工作正常 但是我无法弄清楚如何找到文件的长度而不将其硬编码为字符数组的大小 它还只读取一行 任何带有换行符的内容都会损坏 任何帮助将不胜感激 我省略了主要的代码块 因为它在读入数组
  • 使用 PHP 进行简单的分页

    我想用PHP实现分页 我有一些来自数据库的结果集 让它成为一个数组 我需要一个每页显示 4 条记录的分页 页码应如下 gt 当您选择第 2 页时 格式应为以下 gt 你们能给我推荐一些分页概念来实现这个吗 您实际上可以使用LIMITSQL
  • C#:调试器中的 comctl32.dll 版本 6

    我正在使用WindowsAPI代码包 http code msdn microsoft com WindowsAPICodePack对于任务对话框 当我尝试显示该对话框时 它说需要加载 comctl32 dll 的版本 6 所以我将版本 6
  • 无法推导具有嵌套类型的模板函数

    我正在使用 SystemC 库 它要求所有用户定义的类型都具有运算符 template
  • Eclipse - C++ hello world 项目的错误

    我使用的是 64 位 Windows 7 我已经下载了CDT Eclipse并已下载MinGW 之后 我创建了一个c hello world项目 这是代码 include
  • 亚马逊认知:未找到身份

    我正在开发经过开发人员身份验证的项目 我正在尝试使用下面的代码获取凭据 但它给了我以下错误 我已将 IdentityId 和 Token 从服务器代码手动粘贴到此代码中 Caused by com amazonaws services co
  • 点划线和虚线的绘图问题:如何修改默认线型以便更好地与矢量渲染器“画家”一起使用?

    Matlab 提供以下默认值线条样式 http www mathworks com help matlab ref linespec html Solid line default Dashed line Dotted line Dash
  • 阻止 PWA 在桌面上安装 chrome 76 提示?

    如果满足 PWA 标准 Chrome 76 在多功能框中引入了一个 安装应用程序 按钮 有没有办法阻止此按钮出现在 chrome 桌面的多功能框中 假设您想阻止默认设置以显示自定义安装横幅 在这里读 https love2dev com b
  • 如何使用通配符实例化泛型?

    让我们研究一些使用通配符的通用实例化情况 1 这段代码 List 生成以下错误 required class or interface without bounds found 2 但是这个 List gt 编译成功 3 和这个 List
  • java反编译

    当使用java反编译器 http java decompiler free fr 反编译特定的jar时 我得到了一些奇怪的代码 我无法识别是什么 有人能帮我吗 代码是这样的 Foo access 004 Foo this or this B