Java で Void Type Not Allowed Here エラーを修正する
- 
          
            void type not allowed hereエラーとは何ですか
- 
          
            Java の Void Type Not Allowed Hereエラーの修正 -main()メソッドでは印刷しない
- 
          
            Java の Void Type Not Allowed Here エラーの修正 - printMessage1()の印刷の代わりに文字列を返す
 
Java で大きなプログラムを作成するときは多くの関数を使用しますが、エラーが発生する場合があります。コンパイラがスローする可能性のあるエラーの 1つは、この記事で説明されている void type not allowed here というエラーです。
void type not allowed here エラーとは何ですか
    
Java で関数を作成するには、アクセス修飾子、戻り値の型、括弧付きの関数名を記述し、関数本体は中括弧で囲みます。関数からいくつかのタイプのデータを返すことができますが、何も返したくない場合は、キーワード void を使用して、メソッドから何も返したくないことをコンパイラーに通知します。
以下のプログラムには、2つのメソッドを含むクラス JavaExample があります。1つ目は main() 関数で、2つ目は出力ステートメント System.out.println() を持つ printMessage1() です。printMessage1() がパラメータとして受信するメッセージを出力します。
関数 printMessage1() は何も返さず、メッセージを出力するだけです。戻り型として void 型を使用します。別の print ステートメントを使用しますが、main() メソッドで、引数として 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() メソッドでは印刷しない
このエラーの最初の解決策は、メソッド自体にすでに System.out.println() ステートメントがあり、何も返さないため、print ステートメントで関数 printMessage1() を呼び出さないことです。
このコードでは、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() の印刷の代わりに文字列を返す
2 番目の解決策は、関数で戻り型を指定し、値を返し、関数を呼び出す場所にそれを出力することです。
メソッド printMessage1() を記述しますが、戻り値は String です。メソッドの本体内で、呼び出されたときに返したい value とともに return キーワードを使用します。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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn