Rumah >Java >javaTutorial >Mengapakah saya mendapat ralat \'\'.class\' expected\' dalam Java dan bagaimana saya boleh membetulkannya?

Mengapakah saya mendapat ralat \'\'.class\' expected\' dalam Java dan bagaimana saya boleh membetulkannya?

Barbara Streisand
Barbara Streisandasal
2024-11-20 00:33:03927semak imbas

Why am I getting the

Memahami dan Menyelesaikan Ralat "'.class' Jangkaan"

Semasa menyusun kod dalam Java, pembangun mungkin menghadapi mesej ralat misterius " '.kelas' dijangka." Ralat ini boleh membingungkan untuk kedua-dua pemula dan pengaturcara berpengalaman. Mari kita mendalami makna, punca dan ubat yang berkesan.

Maksud dan Punca

Ralat "'.class' dijangka" timbul apabila pengkompil menemui jenis ( cth., int, int[]) di mana ia menjangkakan ungkapan. Tingkah laku ganjil ini berpunca daripada kekeliruan pengkompil semasa semakan sintaks, menyebabkan ia menjangkakan pengisytiharan kelas selepas tempoh (.).

Contoh

Berikut ialah beberapa contoh ralat:

double d = 1.9;
int i = int d;  // error here
int j = someFunction(int[] a);  // error here

Dalam kedua-dua kes, pengkompil akan mengadu dengan "ralat: '.class' dijangka."

Resolusi

"Cadangan" yang tidak membantu untuk menambah ".class" hampir selalu tidak betul. Sebaliknya, penyelesaian sebenar bergantung pada tujuan jenis yang dimaksudkan dalam kod:

1. Jenis Casting:

Jika niat adalah untuk melakukan cast jenis, sertakan jenis dalam kurungan:

double d = 1.9;
int i = (int) d;   // Correct: casts `1.9` to an integer

2. Tugasan Pembolehubah atau Lulus Parameter:

Lazimnya, jenis hendaklah dialih keluar untuk tugasan mudah atau lulus parameter:

int j = someFunction(a);  // Correct ... assuming `a`'s type is suitable for the call

Tambahan Contoh

Salah:

someMethod(array[]);

Betul:

someMethod(array);                  // pass ref to array
someMethod(array[someExpression]);  // pass array element

Salah:

int i = someMethod(int j); 

Betul:

int i = someMethod(j);

Salah:

int i = int(2.0);

Betul:

int i = (int) 2.0;

Salah:

int[]; letterCount = new int[26];

Betul:

int[] letterCount = new int[26];

Salah:

if (someArray[] > 80) {
    // ...
}

Betul:

if (someArray[someIndex] > 80)

Dalam betul:

int[] integers = new int[arraySize];
...
return integers[];

Betul:

return integers;             // Return entire array
return integers[someIndex];  // Return array element

Salah:

if ((withdraw % 5 == 0) & (acnt_balc >= withdraw + 0.50))
    double cur = acnt_balc - (withdraw + 0.50);
    System.out.println(cur);
else
    System.out.println(acnt_balc);

Betul:

if ((withdraw % 5 == 0) & (acnt_balc >= withdraw + 0.50)) {
    double cur = acnt_balc - (withdraw + 0.50);
    System.out.println(cur);
} else {
    System.out.println(acnt_balc);
}

Atas ialah kandungan terperinci Mengapakah saya mendapat ralat ''.class' expected' dalam Java dan bagaimana saya boleh membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn