有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

反编译Java文件后出错

我尝试反编译一个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;
}

共 (2) 个答案

  1. # 1 楼答案

    永远不要信任反编译器的输出。即使它编译得很干净。即使您可以对原始版本和往返版本运行相同的单元测试套件,并获得相同的结果

    决不要试图手动“修复”反编译代码的问题。如果你发现自己在想,“嗯,这看起来几乎是对的……我想我能解决这个问题,”停下来。不要那样做

    真诚地

    写过反编译器的人

  2. # 2 楼答案

    不能使用反编译代码。在编写代码之后,当它被编译时,一些代码由 安卓也是。当你进行反编译时,你会得到一个改变的信息。所以你会犯错误