Java でのクラスの予期されるエラー
このガイドでは、Java での '.class' expected
エラーが何であるかを調べます。
それはどのような種類のエラーで、いつ発生しますか? なぜそれが発生し、その解決策は何ですか?
それでは、これ以上遅れることなく、飛び込みましょう。
コンパイル時エラー
'.class' expected
エラーはコンパイル時のエラーです。 これは実行時エラーだと考える人もいるかもしれませんが、それは誤りです。
コンパイルが成功すると実行時エラーが発生しますが、実行時に問題がありました。
すべての実行時情報がコンパイラに渡されるわけではないため、コンパイラはコンパイル中に実行時エラーを検出できません。 したがって、コンパイラが混乱するようにコードが記述されているため、'.class' expected
エラーはコンパイル時に分類されます。
'.class' が予期される
Java のエラー
Java でコードを書くときはいつでも、.class expected
エラーが見つかる可能性があります。 コードが一見完璧に見えるのに、これが何なのか心配する人もいるかもしれません。
しかし、これは心配する必要はありません。単純なミスにより、中括弧が欠落しているように見えたり、セミコロンの問題やその他の構文エラーが発生したりするためです。
Java では、構文、中括弧、およびセミコロンが重要な役割を果たします。 コードのブロックを定義する中括弧と、次の行をコンパイルするためにコード行が終了したことをコンパイラーに伝えるセミコロンが必要です。
つまり、.class
エラーは、Syntax Error を作成した場合に発生するエラーです。
Java の '.class' expected
エラーを修正
現在、これらの間違いは徹底的な評価で修正できます。 しかし、一部のエラー (構文エラー) はユーザーには知られておらず、エラー '.class' expected
が表示されると、ユーザーはこのエラーが発生した理由を理解できないため、混乱と疲労の両方が発生します。
エラーが発生すると、コンパイラは通常、それを修正するためのオプションを提案します。 問題とその解決策をユーザーに伝えますが、この場合、'.class' expected
は解決策ではありません。
コンパイラがこれを提案する場合、通常は、前述のように、コードで使用されている構文の場合です。 クラスを含めることは解決策ではありません。 ユーザーに何を提案するかについてコンパイラが混乱しているだけです。
以下は、配列に与えられた数値をソートするために使用されるソート配列の例です。
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] sorting = new int[] {4, 8, 2, 6, 7};
Arrays.sort(sorting[]);
System.out.println("Sorted array : ");
for (int i = 0; i < sorting.length; i++) // to print the array
{
System.out.println(sorting[i]);
}
}
}
出力:
error: '.class' expected
Arrays.sort(sorting[]);
^
1 error
上記の例に示されているように、これはシンプルな配列のソートです。角かっこ []
の単純な間違いが、コンパイラがこのコード行 Arrays.sort(sorting[]);
がどこに書かれているかを理解できないために、このエラーを引き起こしました。
これは、空の角括弧を使用できない Java 構文です。 この場合、変数を渡す必要がある場合は、これが配列であることをコンパイラに通知する必要がないため、変数のみを使用する必要があります。
他のオブジェクトと同様に配列を渡します。
解決:
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] sorting = new int[] {4, 8, 2, 6, 7};
Arrays.sort(sorting);
System.out.println("Sorted array : ");
for (int i = 0; i < sorting.length; i++) // to print the array
{
System.out.println(sorting[i]);
}
}
}
出力:
Sorted array :
2
4
6
7
8
上で説明したように、角括弧が原因でエラー '.class' expected
を受け取ったので、角括弧を削除するだけでプログラムを実行できます。 これは、Java 構文の要件によるものでした。
配列 sorting
自体は、型が int[]
のオブジェクトです。 したがって、コンパイラは、オブジェクトとして渡される sorting[]
を受け入れません。
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn