Rumah  >  Artikel  >  Java  >  Mengapakah Java Membuang \"Xyz Literal Jenis int Adalah Di Luar Julat\" Apabila Menetapkan Pembolehubah Panjang?

Mengapakah Java Membuang \"Xyz Literal Jenis int Adalah Di Luar Julat\" Apabila Menetapkan Pembolehubah Panjang?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 05:41:27877semak imbas

Why Does Java Throw

Membetulkan "Xyz Literal Jenis int Adalah Di Luar Julat"

Apabila bekerja dengan jenis data di Java, adalah penting untuk memahami mereka julat nilai. Walau bagaimanapun, anda mungkin menghadapi ralat yang menyatakan "Xyz literal jenis int berada di luar julat," walaupun semasa memberikan nilai kepada pembolehubah panjang.

Untuk menyelesaikannya, kuncinya ialah dengan menyatakan secara eksplisit jenis nilainya. Di Java, nilai integer sehingga 2^31-1 boleh diwakili oleh int, manakala nilai yang lebih besar memerlukan panjang. Walau bagaimanapun, Java secara tersirat mentafsir literal angka sebagai int melainkan dinyatakan sebaliknya secara eksplisit.

Dalam kes anda, kod tersebut memberikan nilai yang lebih besar daripada 2^63-1 kepada pembolehubah panjang bernama testLong. Memandangkan 9223372036854775807 literal melebihi julat int, pengkompil mentafsirkannya sedemikian, membawa kepada ralat.

Untuk membetulkannya, cuma tambahkan huruf besar L pada penghujung literal angka untuk menunjukkan bahawa ia mewakili nilai panjang:

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

Dengan menyatakan secara eksplisit jenis literal, anda memastikan bahawa pengkompil memperuntukkannya dengan betul kepada jenis data yang sesuai. Amalan ini amat penting apabila bekerja dengan literal yang hampir dengan nilai maksimum atau minimum jenis data untuk mengelakkan kemungkinan ralat.

Atas ialah kandungan terperinci Mengapakah Java Membuang \"Xyz Literal Jenis int Adalah Di Luar Julat\" Apabila Menetapkan Pembolehubah 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