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