在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在内的代偿符。