Maison >Java >javaDidacticiel >Pourquoi Java génère-t-il une erreur « hors de portée » pour un littéral long alors que la variable est déclarée aussi longue ?

Pourquoi Java génère-t-il une erreur « hors de portée » pour un littéral long alors que la variable est déclarée aussi longue ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-29 06:01:31791parcourir

Why does Java throw an

"Le voyage difficile du littéral de Int à Long"

Dans le domaine des types de données Java, rencontrer un message d'erreur énigmatique comme "Le "Le xyz littéral de type int est hors de portée" peut laisser perplexes même les programmeurs chevronnés. Découvrez ci-dessous la solution à cette énigme déroutante.

Le mystère dévoilé

Malgré la déclaration de la variable testLong comme type de données long, Java interprète la valeur littérale 9223372036854775807 comme un nombre entier. , ce qui entraîne l'erreur. La pièce manquante à ce puzzle réside dans une subtile omission : l'ajout d'un "L" majuscule à la fin du littéral.

L'ingrédient secret

Java nécessite les littéraux doivent être explicitement spécifiés comme étant longs, de peur que le compilateur ne les interprète comme des entiers. L'ajout du "L" majuscule au littéral, comme le montre le code corrigé ci-dessous, résout le problème :

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

Avec cette modification, le compilateur reconnaît le littéral comme une valeur longue, respectant sa plage illimitée de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn