修復 Java 中 Void Type Not Allowed Here 錯誤

Rupam Yadav 2023年10月12日
  1. 什麼是 void type not allowed here 錯誤
  2. 修復 Java 中 void type not allowed here 錯誤 - 不要在 main() 方法中列印
  3. 修復 Java 中 void type not allowed here 錯誤 - 返回字串而不是在 printMessage1() 中列印
修復 Java 中 Void Type Not Allowed Here 錯誤

我們在 Java 中建立大程式時會用到很多函式,有時可能會出現錯誤。編譯器可能丟擲的錯誤之一是本文中討論的 void type not allowed here 錯誤。

什麼是 void type not allowed here 錯誤

我們在 Java 中通過編寫訪問修飾符、返回型別、帶括號的函式名來建立函式,並且函式體用花括號括起來。我們可以從一個函式返回多種型別的資料,但是當我們不想返回任何資料時,我們使用關鍵字 void 告訴編譯器我們不想從該方法返回任何資料。

在下面的程式中,我們有一個類 JavaExample,它包含兩個方法,第一個是 main() 函式,第二個是 printMessage1(),它有一個列印語句 System.out.println() 列印 printMessage1() 作為引數接收的訊息。

printMessage1() 函式不返回任何內容,只列印一條訊息;我們使用 void 型別作為返回型別。我們在 main() 方法中使用另一個 print 語句,並以 String 1 作為引數呼叫其中的 printMessage1() 函式。

當我們執行程式碼時,輸​​出會丟擲一個錯誤,void type not allowed here。這是因為 printMessage1() 已經有一個列印 value 的 print 語句,並且當我們在 print 語句中呼叫該函式時它不會返回任何內容; main 方法中沒有可列印的內容。

public class JavaExample {
  public static void main(String[] args) {
    System.out.println(printMessage1("String 1"));
  }

  static void printMessage1(String value) {
    System.out.println(value);
  }
}

輸出:

java: 'void' type not allowed here

修復 Java 中 void type not allowed here 錯誤 - 不要在 main() 方法中列印

這個錯誤的第一個解決方案是我們不在列印語句中呼叫函式 printMessage1(),因為方法本身已經有一個 System.out.println() 語句,並且它不返回任何內容。

在這段程式碼中,我們將 printMessage1() 函式的主體編寫為 println() 語句。我們使用字串作為引數呼叫 main() 中的 printMessage1() 方法。

public class JavaExample {
  public static void main(String[] args) {
    printMessage1("String 1");
  }

  static void printMessage1(String value) {
    System.out.println(value);
  }
}

輸出:

String 1

修復 Java 中 void type not allowed here 錯誤 - 返回字串而不是在 printMessage1() 中列印

第二種解決方案是在函式中指定返回型別,返回一個值,並在我們呼叫函式的任何地方列印它。

我們編寫方法 printMessage1(),但返回型別 String。在方法的主體中,我們使用 return 關鍵字和我們想要在呼叫時返回的 value。在 main() 方法中,我們將函式 printMessage1() 呼叫到 print 語句中,但該方法返回值時不會出錯。

public class JavaExample {
  public static void main(String[] args) {
    System.out.println(printMessage1("How are you doing today?"));
    System.out.println(printMessage1("String 2"));
  }

  static String printMessage1(String value) {
    return value;
  }
}

輸出:

How are you doing today?
String 2
作者: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相關文章 - Java Void