[英]Why do you have to specify method return type in Java?
有时我看到这样声明的方法:
public MethodName() { ... }
其他时候,我看到用类声明的方法定义了它们正在返回的类型(?)。 例如:
public ClassName methodName() { ... }
这有什么意义呢? 为什么必须指定返回类型?
是的,您始终必须指定方法返回类型。 这样做的原因是因为Java是强类型和静态类型的 ,这意味着编译器必须在编译时知道所有表达式的类型。
您看到的看起来像没有返回类型的方法实际上是该类的构造函数 ,使用它您可以创建该类的实例。
当您有一个构造函数时,它没有返回类型,从技术上说,签名是<init>(Lpackage.Type;)V
,其中V
表示void
。 它不返回该类型的对象,而是接收该类型的对象并将其初始化。
在JVM级别,返回类型是签名的一部分。 如果您使用类似的方法编译程序,请考虑使用此方法
public static long zero() { return 0; }
但是您稍后会重新编译此方法,但不会重新编译调用它的方法。
public static int zero() { return 0; }
使用旧代码编译的方法将无法找到针对其编译的方法。 这是因为这些方法是在假定返回long
下编译的,而它们甚至可能在返回int
情况下也无法编译。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.