如果代码是这样的
@CompileStatic
class TestGroovy {
void funcA() {
try {
def a = 1 + 1
} catch (e) {
println e
}
}
}
idea 反编译结果
public void funcA() {
try {
try {
int a = 1 + 1;
} catch (Exception var6) {
DefaultGroovyMethods.println(this, var6);
Object var10000 = null;
}
} finally {
;
}
}
上面没问题,大概能根据反编译的代码看出原始代码。
如果在 catch 块中添加 return 语句
@CompileStatic
class TestGroovy {
void funcA() {
try {
def a = 1 + 1
} catch (e) {
println e
return
}
}
}
idea 反编译无法反编译
public void funcA() {
// $FF: Couldn't be decompiled
}
使用 jd.gui 进行反编译,能正常反编译,而且变量名更友好。
public void funcA() {
try {
int a = 1 + 1;
} catch (Exception e) {
DefaultGroovyMethods.println(this, e);
null;
return;
} finally {}
}
idea 2019.03
所以如何能让 idea 的反编译达到 jd.gui 这种效果呢