在 Intellij IDEA
的反编译代码中,我看到以下代码:
public void someMethod(Map params) {
HashMap params;
if (null == params) {
params = new HashMap();
} else {
// ...
}
}
由于两个原因,这段代码无法编译:
params
在 body 中重新声明,因此它是重复的局部变量。- 即使修复了上述问题,第二个
params
仍未初始化。
问题
- 为什么要这样反编译?
最佳答案
IntelliJ 使用自己的名为“Fernflower”的反编译器。这是一个GitHub .
它不是最好的反编译器,但它是一个活的,所以有时它有可能成为最好的。
同时,您可以使用 Eclipse ;)。真的有强大的反编译器plugin它支持多种不同的反编译器。
您也可以使用 Jar Explorer .这是一个独立的工具,具有三个反编译器,包括 Fernflower。
关于Java反编译得到重复的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57318766/