我一直在查看反编译的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;
}
答案 0 :(得分:5)
这个组合条件意味着如果这四个条件中的任何一个或全部都是真的,那么整个条件都是正确的。
但条件体是空的,所以事后没有任何事情发生。然而,循环的执行与条件无关。
但是你也应该知道反编译有时候不能完全正常工作,所以它可能是一个反编译错误。如果查看错误的返回类型,这种假设更为正确。因此,即使这个代码在整个应用程序中被广泛使用,我也会建议一个反编译问题。
答案 1 :(得分:0)
好的,这很奇怪。
条件根本不起作用。就像
if (condition) {
}
循环条件表示“永远执行”
循环体说“马上回来”,但它正在返回错误的类型!这怎么可以编译?