[英]What does return; (without value) mean?
我提取某人的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;
只退出该语句的方法,而不是运行以下语句。
对,那是正确的。 请查看http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html的底部:
退货声明
最后一个分支语句是return语句。 return语句从当前方法退出,控制流返回到调用方法的位置。 return语句有两种形式:一种是返回值,另一种是不返回值。 要返回值,只需将值(或计算值的表达式)放在return关键字之后。
return ++ count; 返回值的数据类型必须与方法声明的返回值的类型匹配。 当方法声明为void时,请使用不返回值的return形式。
返回;
回答你的第一个问题:我认为这个代码是反编译的。 请注意,反编译器不是二进制dex代码的一对一转换器,而是用于生成这些二进制文件的任何Java代码。 它们经常在解析不同的控制结构(如循环和开关)时遇到问题。 此外,二进制文件可能会被混淆,这意味着在编译之后,二进制文件会以完全可操作的方式进行修改,但更难以反编译和反向工程(基本上是为了防止你在这里尝试做什么:))。 他们可以添加死代码,比如不应该存在的return语句,mangle循环和if语句来混淆反编译代码等等。
return关键字基本上用在void方法中,它有助于打破条件语句从方法中出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.