Java方法返回值规则要求:声明类型与return值兼容,每条执行路径必有return(void除外);支持协变与自动转换,禁止不安全转换;需覆盖所有控制流;return立即终止方法;返回引用需防副作用。
Java中方法的返回值规则核心在于:方法声明的返回类型必须与实际return语句返回的值类型兼容,且每条可能执行到的代码路径都必须有明确的返回值(void方法除外)。
方法签名中声明的返回类型决定了return语句能返回什么。基本规则是:返回值类型可以是声明类型的子类型(协变),或能自动转换的类型(如int→long),但不能丢失精度或发生不安全转换。
return 5;非法),但可用return;提前退出编译器会检查方法中每一条可能的控制流是否最终到达一个return语句。如果存在某条路径没有return,编译直接报错“missing return statement”。
中,若只有if块有return,else分支没处理,就会报错return不是“函数结束标记”,而是立即终止当前方法并把控制权交还调用方。一旦执行,其后代码永不运行(除非在finally块中)。
if (obj == null) return null;)return引用类型(如List、Map、自定义对象)时,返回的是引用副本。调用方拿到后可修改原对象内容——这不违反返回值规则,但可能引发意料外的副作用。
Collections.unmodifiableList(list))或深拷贝