在Java中,哪里可以出现return语句?

Joh*_*oth 3 java return return-value

除了在方法/构造函数体内?

此外,构造函数是否可以返回一些内容?或者我可以只使用" return;"而没有任何表达式吗?

Ber*_*t F 7

在Java中,哪里可以出现return语句?除了在方法/构造函数体内?

仅在构造函数或方法中:

JLS - http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#6767

return语句将控制权返回给方法(§8.4,§15.12)或构造函数(§8.8,§15.9)的调用者.


此外,构造函数是否可以返回一些内容?

没有

JLS - http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#6767

带有Expression的return语句必须包含在声明为返回值(第8.4节)或发生编译时错误的方法声明中.


或者我只能使用"返回"; 没有任何表达式吗?

JLS - http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#6767

没有Expression的return语句必须包含在声明的方法体中,使用关键字void,不返回任何值(§8.4),或者在构造函数体中(§8.8)


Jon*_*eet 5

这个以及许多其他语言律师问题的真实来源是Java语言规范,在本例中是第14.17节:

return语句将控制权返回给方法(§8.4,§15.12)或构造函数(§8.8,§15.9)的调用者.

ReturnStatement:
   返回Expression opt ;

没有Expression的return语句必须包含在声明的方法体中,使用关键字void,不返回任何值(第8.4节),或者包含在构造函数体(第8.8节)中.如果返回语句出现在实例初始化程序或静态初始化程序(第7.7节)中,则会发生编译时错误.没有Expression的return语句尝试将控制权转移给包含它的方法或构造函数的调用者.

确切地说,没有表达式的return语句总是突然完成,原因是没有值的返回.

请注意,这显式地指出您可以在构造函数中使用return语句 - 但它确实将其限制为构造函数和方法.