繁体   English   中英

为什么必须在Java中指定方法返回类型?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM