我一直在研究反编译的APK文件中的一些代码,并使用此语法返回了我以前从未见过的布尔条件。有人对此有解释吗?

public static boolean is2G(NetworkType paramNetworkType)
{
    if ((EDGE.equals(paramNetworkType)) || (IDEN.equals(paramNetworkType)) || (CDMA.equals(paramNetworkType)) || (GPRS.equals(paramNetworkType)));
    for (int i = 1; ; i = 0)
        return i;
}

最佳答案

此组合条件意味着,如果这四个条件中的任何一个或全部为真,则整个条件为真。

但是条件主体为空,因此此后什么也没有发生。但是,循环是独立于条件执行的。

但是您还应该知道,反编译有时无法完全正常工作,因此也许是一个反编译错误。如果您查看错误的返回类型,则该假设更为正确。因此,即使此代码在整个应用程序中得到了广泛使用,我也会提出反编译问题。

09-13 08:03