Rumah >Java >javaTutorial >Mengapakah Java membuang ralat \'di luar julat\' untuk literal yang panjang walaupun pembolehubah itu diisytiharkan sebagai panjang?

Mengapakah Java membuang ralat \'di luar julat\' untuk literal yang panjang walaupun pembolehubah itu diisytiharkan sebagai panjang?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 06:01:31791semak imbas

Why does Java throw an

"The Literal's Uneasy Journey from Int to Long"

Dalam bidang jenis data Java, menghadapi mesej ralat yang membingungkan seperti "The xyz literal jenis int berada di luar julat" boleh menyebabkan pengaturcara yang berpengalaman pun bingung. Temui penyelesaian kepada teka-teki yang membingungkan ini di bawah.

Misteri Terbongkar

Walaupun mengisytiharkan pembolehubah testLong sebagai jenis data yang panjang, Java mentafsir nilai literal 9223372036854775807 sebagai integer , mengakibatkan ralat. Bahagian yang hilang pada teka-teki ini terletak pada peninggalan yang halus: penambahan huruf besar "L" pada akhir literal.

Ramuan Rahsia

Java memerlukan literal untuk dinyatakan secara eksplisit selamanya, supaya pengkompil mentafsirkannya sebagai integer. Menambahkan huruf besar "L" pada literal, seperti yang dilihat dalam kod yang diperbetulkan di bawah, menyelesaikan isu:

<code class="java">long testLong = 9223372036854775807L;</code>

Dengan perubahan ini, pengkompil mengiktiraf literal sebagai nilai yang panjang, menghormati julat tanpa sempadannya -9,223,372,036,854,775,808 kepada 9,223,372,036,854,775,807.

Atas ialah kandungan terperinci Mengapakah Java membuang ralat \'di luar julat\' untuk literal yang panjang walaupun pembolehubah itu diisytiharkan sebagai panjang?. 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