Erreur : cannot find symbol
Résolu/Fermé
Ipoote
Messages postés
45
Date d'inscription
dimanche 23 septembre 2018
Statut
Membre
Dernière intervention
21 mai 2023
-
29 sept. 2020 à 19:31
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 1 oct. 2020 à 22:57
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 1 oct. 2020 à 22:57
A voir également:
- Java cannot find symbol
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum Lecteurs et supports vidéo
- Java code erreur 1603 ✓ - Forum Windows
2 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
29 sept. 2020 à 21:09
29 sept. 2020 à 21:09
Bonjour,
Merci de copier-coller ton code, entre les balises <code java></code> et les éventuels messages d'erreurs, parce que ton image est illisible...
Merci de copier-coller ton code, entre les balises <code java></code> et les éventuels messages d'erreurs, parce que ton image est illisible...
Ipoote
Messages postés
45
Date d'inscription
dimanche 23 septembre 2018
Statut
Membre
Dernière intervention
21 mai 2023
Modifié le 1 oct. 2020 à 16:50
Modifié le 1 oct. 2020 à 16:50
Merci beaucoup à vous 2, cela a fonctionné !
Pendant que j'y suis, je bute désormais sur un autre problème avec un autre exercice, voici le code de base :
une fois l'exercice effectué, me voici avec cela, qui ne fonctionne pas :
j'imagine que le problème vient de mon "private static final String", mais je ne vois pas comment le régler ; j'ai essayé d'enlever le "private static"et cela fonctionne, mais je ne pense pas que ce soit la meilleure solution
Pendant que j'y suis, je bute désormais sur un autre problème avec un autre exercice, voici le code de base :
import java.util.*; public class MonthsMap { public static void main(String[] args) { Map<String, Integer> months = new HashMap <String, Integer>(); //TODO Remplacez les variables par des constantes months.put("June", 6); months.put("September", 9); months.put("March", 5); //TODO Corrigez "march" (mars) par sa vraie valeur (3) //TODO Supprimez "june" (juin) //Affiche le contenu du dictionnaire System.out.println("Here are some interesting months"); for (Map.Entry<String,Integer> month : months.entrySet()){ System.out.println(month.getKey() + " is month number " + month.getValue() + " of the year "); } } }
une fois l'exercice effectué, me voici avec cela, qui ne fonctionne pas :
import java.util.*; public class MonthsMap { public static void main(String[] args) { Map<String, Integer> months = new HashMap <String, Integer>(); //TODO Remplacez les variables par des constantes private static final String june = "June"; private static final String september = "September"; private static final String march = "March"; months.put (june , 6); months.put (september , 9); months.put (march , 5); //TODO Corrigez "march" (mars) par sa vraie valeur (3) months.put ("March" , 3); //TODO Supprimez "june" (juin) months.remove ("June"); //Affiche le contenu du dictionnaire System.out.println("Here are some interesting months"); for (Map.Entry<String,Integer> month : months.entrySet()){ System.out.println(month.getKey() + " is month number " + month.getValue() + " of the year "); } } }
j'imagine que le problème vient de mon "private static final String", mais je ne vois pas comment le régler ; j'ai essayé d'enlever le "private static"et cela fonctionne, mais je ne pense pas que ce soit la meilleure solution
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
1 oct. 2020 à 17:22
1 oct. 2020 à 17:22
Les mots clés private et static s'utilisent sur des classes, des méthodes ou des attributs, mais jamais sur des variables locales. C'est donc normal que tu ais eu une erreur en essayant de les mettre et le code que tu obtiens sans - et qui fonctionne - est bien celui qu'il faut.
Ipoote
Messages postés
45
Date d'inscription
dimanche 23 septembre 2018
Statut
Membre
Dernière intervention
21 mai 2023
>
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
1 oct. 2020 à 21:54
1 oct. 2020 à 21:54
Merci beaucoup !!
Désolé de t'embêter mais dans cet extrait de code, on me dit que la valeur finale de x est 22 et la valeur finale de y est 64, or je ne vois rien dans le code qui puisse mener à un tel résultat ?
Désolé de t'embêter mais dans cet extrait de code, on me dit que la valeur finale de x est 22 et la valeur finale de y est 64, or je ne vois rien dans le code qui puisse mener à un tel résultat ?
public static int transform(int a, int b) { int x = a + b; int y = x * 2; return y; } public static void main(String[] args) { int x = 1; int y = 10; x = transform(x, y); y = transform(y, x); }
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
>
Ipoote
Messages postés
45
Date d'inscription
dimanche 23 septembre 2018
Statut
Membre
Dernière intervention
21 mai 2023
1 oct. 2020 à 22:57
1 oct. 2020 à 22:57
Ce qu'il faut comprendre c'est que les variables x et y qui sont dans la méthode transform n'ont rien à voir avec celles de la méthode main.
Si on déroule le programme on a ceci :
On obtient donc effectivement main.x qui vaut 22 et main.y qui vaut 64
C'est le genre de chose que tu pourrais voir en utilisant un IDE et en exécutant le code en mode debug pas à pas.
Si on déroule le programme on a ceci :
main.x =1
main.y = 10
transform.a = main.x = 1
transform.b = main.y = 10
transform.x = transform.a + transform.b = 1 + 10 = 11
transform.y = transform.x * 2 = 11 * 2 = 22
transform.return = transform.y = 22
main.x = transform.return = 22
transform.a = main.y = 10
transform.b = main.x = 22
transform.x = transform.a + transform.b = 10 + 22 = 32
transform.y = transform.x * 2 = 32 * 2 = 64
transform.return = transform.y = 64
main.y = transform.return = 64
On obtient donc effectivement main.x qui vaut 22 et main.y qui vaut 64
C'est le genre de chose que tu pourrais voir en utilisant un IDE et en exécutant le code en mode debug pas à pas.
29 sept. 2020 à 21:42
Salut alors tout d'abors si tu veut des cours plus précis je te conseil :
— Cours de Koor : https://koor.fr/Java/Tutorial/Index.wp (aussi en vidéo : https://www.youtube.com/watch?v=pXaaacSkPqc&list=PLBNheBxhHLQxfJhoz193-dRwvc2rl8AOW
— Cours plus avancé de Jean-Michel Doudoux : https://www.jmdoudoux.fr/java/dej/indexavecframes.htm
— JetBrains Academy : https://www.jetbrains.com/fr-fr/academy/
Aussi je te conseil fortement d’utiliser un IDE comme intelij Idea qui en est un très bon ! Car cela t'évitera d'avoir des erreurs toute bête comme celle ci :)
Sinon l'erreur est comme je l'est dit toute bête car tu as juste oublié d'importé en haut de ton code : import java.util.List;
Car tu utilise une List à la ligne 9 mais tu n'import pas la class , alors que pour l'ArrayList tu import la class.
Avec un IDE tu verra toute de suite l'erreur que tu pourra réparer en moins de 2 secondes !
J’espère avoir pu t'aider et bonne continuation dans ton apprentissage en Java !
Di_Link
1 oct. 2020 à 16:02
J'ai essayé de télécharger Intelij IDEA, mais je n'y ai pas compris grand chose, sûrement parce que je débute j'imagine ?
1 oct. 2020 à 15:57
1 oct. 2020 à 16:00
List <String> guests = new ArrayList ();
symbol : class List
location : GuestsList
1 error
voici l'erreur qui survient
1 oct. 2020 à 16:20
Pour reprendre ce qui a été dit :
Di_Link: Ipoote:
L'import de java.util.List n'est toujours pas dans ton code, tu as importé ArrayList, mais pas List :
De plus tu as un autre erreur ligne 18, tu as écrit comme si c'était un attribut alors que est une méthode, il faut donc des parenthèses :