【发布时间】:2023-04-06 04:15:01
【问题描述】:
我提取了某人的 APK(Android 应用)查看 Java 源代码,看到了很多 return; 代码,甚至在 void 方法上。
例如:
public void doSomething(){
do{
return; //This line makes the code below unreachable and can't compile in Eclipse
switch(num){
...
default:
return;
}
}while(...)
...
}
为什么这个应用似乎在我的手机上运行良好?
我猜return; 就像是打破方法的捷径。对吗?
【问题讨论】:
-
反编译器并不总是完美的。
-
每个方法最终都会返回。因此,具有
void返回类型的方法可以return;或将其排除在外。它不是必需的,是一个偏好问题。 -
@Vulcan 所以它们是代码的损坏部分?
-
@squiguy 这不仅仅是一个偏好问题。它提供了异常无法实现的有用目的——它允许您在不破坏执行路径的情况下结束执行路径。我的意思是,您可以在该调用之外返回并继续下一行,而不是在第一个 catch 语句中抛出异常并输入完全不同的执行路径。因此,虽然 void 方法一直不需要它,但它仍然不仅仅是个人喜好。