返回布尔方法时需要的解释

时间:2011-04-01 20:12:33

标签: java android

我一直在查看反编译的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;
}

2 个答案:

答案 0 :(得分:5)

这个组合条件意味着如果这四个条件中的任何一个或全部都是真的,那么整个条件都是正确的。

但条件体是空的,所以事后没有任何事情发生。然而,循环的执行与条件无关。

但是你也应该知道反编译有时候不能完全正常工作,所以它可能是一个反编译错误。如果查看错误的返回类型,这种假设更为正确。因此,即使这个代码在整个应用程序中被广泛使用,我也会建议一个反编译问题。

答案 1 :(得分:0)

好的,这很奇怪。

条件根本不起作用。就像

if (condition) {
}

循环条件表示“永远执行”

循环体说“马上回来”,但它正在返回错误的类型!这怎么可以编译?