HOWTO · Java
Java でのクラスの予期されるエラー
このガイドでは、Java で予想される .class エラーについて調べます。
このページの内容
このガイドでは、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[] を受け入れません。