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