Java分解会复制局部变量



Intellij IDEA的分解代码中,我看到以下代码:

public void someMethod(Map params)  {
    HashMap params;
    if (null == params) {
        params = new HashMap();
    } else {
        // ...
    }
}

由于两个原因,此代码无法编译:

  • params已重新定义在身体中,因此是重复的本地变量。
  • 即使解决了上述问题,第二个params仍未初始化。

问题

  • 为什么以这种方式进行反编译?

Intellij使用自己的分解器称为" Fernflower"。这是一个github。
它不是最好的二足剂,但它是活着的,所以有时可能会成为最好的。
同时,您可以使用Eclipse;(。确实有功能强大的分解插件,它支持几个不同的分解器。
您也可以使用Jar Explorer。这是单独的工具,它具有三个包括Fernflower在内的代偿符。

最新更新