我尝试对Java文件进行反编译,但是反编译给我的不是给出确切的代码,而是使用goto语句和标签的代码
现在我要提取已使用的代码。有人可以帮忙吗?
@Override
public int getItemViewType(int i)
{
int j = 1;
if (!displaySearchField || i != 0) goto _L2; else goto _L1
_L1:
j = 0;
_L4:
return j;
_L2:
int k = i;
if (displaySearchField)
{
k--;
}
if (!(items.get(k) instanceof Group))
{
continue; /* Loop/switch isn't completed */
}
if (displaySearchField) goto _L4; else goto _L3
_L3:
return 0;
if (!displaySearchField) goto _L4; else goto _L5
_L5:
return 2;
}
答案 0 :(得分:1)
永远不要相信反编译器的输出。即使它干净利落地编译。即使您可以针对原始版本和往返版本运行相同的单元测试套件,但结果相同。
永远不要尝试手动“修复”反编译代码的问题。如果你发现自己在想,“嗯,看起来几乎正确......我想我可以解决这个问题,”停止。不要那样做。
此致
编写反编译器的人。
答案 1 :(得分:0)
您不能使用反编译代码。编写代码后,编译代码时会添加一些代码 android也。当您反编译时,您将获得更改。所以你得到错误。