首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"java反编译器“JD-Core 0.6.0 / JD-GUI 0.3.3反编译代码含义

"java反编译器“JD-Core 0.6.0 / JD-GUI 0.3.3反编译代码含义
EN

Stack Overflow用户
提问于 2012-07-18 02:56:30
回答 2查看 2.3K关注 0票数 1
代码语言:javascript
复制
 MohrAboutBox.1 local1 = new ActionListener() {

我用JD GUI 0.3.3反编译了一个jar文件,得到了这一行,这对我来说没有任何意义。".1“(点一),它指的是什么?我尝试重新编译,但从javac编译器得到一个错误,它说这不是一条语句。我该怎么做?我想我必须去掉".1“或者放入"this”,或者一些变量、类或方法,我不知道为什么JD不能完成这项工作。

代码语言:javascript
复制
class MohrAboutBox extends JDialog
{
  public MohrAboutBox(MohrControls paramMohrControls)
  {

    MohrAboutBox.1 local1 = new ActionListener() {
      public void actionPerformed(ActionEvent paramActionEvent) {
        MohrAboutBox.this.exit_dlg();
      }
    };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-18 03:02:05

它指的是这是MohrAboutBox中封闭的(匿名)类(实现ActionListener)的一个实例,例如MohrAboutBox $1,将其更改为:

代码语言:javascript
复制
ActionListener listener = new ActionListener() {
    public void actionPerformed(ActionEvent paramActionEvent) {
        MohrAboutBox.this.exit_dlg();
    }
};
票数 3
EN

Stack Overflow用户

发布于 2012-07-18 03:02:20

它是原始源代码中的一个匿名内部类;一个没有有效Java名称的类。Java编译器将生成的类文件命名为ClassName$1ClassName$2。目前还不清楚为什么反编译器不能自己解决这个问题。您需要提供从中扩展内部类的实际类的名称--也就是本例中的ActionListener --然后代码应该可以很好地编译。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11529021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档