Erreur de compilation en java :impossible de trouver le symbole.
J'ai ce code qui prend un fichier texte et le transformer en chaîne, puis de séparer les parties de la chaîne en différents éléments d'une liste de tableaux.
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
public class Grocery{
public Grocery(){
File inFile = new File ("lists.txt");
Scanner input = new Scanner (inFile);
String grocery;
{
grocery = input.nextLine();
}
}
public void makeSmallerLists(){
String listLine;
String line;
ArrayList<String> smallList = new ArrayList<String>();
while(input.hasNextLine()){
line = input.nextLine;
if(line.equals("<END>")){
smallList.add(listLine);
} else{
listLine = listLine + "\n" + line;
}
}
}
}
Cependant lorsque j'essaie de compiler ce qu'il me donne deux erreurs:
javac Message.java Message.java:31: cannot find symbol symbol :
variable d'entrée lieu: classe de Message alors que(d'entrée.hasNextLine()){
^ Message.java:32: cannot find symbol symbol : variable d'entrée lieu: classe de ligne de Message = input.nextLine;
^
Comment puis-je résoudre ce problème? Je ne sais vraiment pas quel est le problème.
J'ai corrigé ça et maintenant mon erreur dit
$ javac Message.java
Message.java:34: impossible de trouver le symbole
symbole : variable nextLine
lieu: la classe java.util.Scanner
ligne = input.nextLine;
^
^
Maintenant quel est le problème?
OriginalL'auteur user2977165 | 2013-11-25
Vous devez vous connecter pour publier un commentaire.
input
est celui du constructeur, vous ne pouvez pas accéder à l'extérieur et que vous tentez d'accéder àmakeSmallerLists()
méthode. En faire un membre de l'instance, de Sorte que la disposition à travers leclass
autres questatic
contexte.et dans le constructeur
OriginalL'auteur Suresh Atta
Vous avez de la portée des variables du problème. Vous ne pouvez pas obtenir l'accès à un champ en dehors de la portée. Déclarer Scanner à l'échelle internationale, à l'extérieur de costructor.
Également la méthode append support
()
.OriginalL'auteur Masudul
C'est parce que le Scanner objet
input
a été déclarée à l'intérieur de votre constructeur(portée locale du constructeur) et donc ses pas visible dans votremakeSmallerLists()
. Vous avez besoin de la déclarer comme une variable d'instance afin qu'il soit accessible dans toutes les méthodes de la classe.OriginalL'auteur SudoRahul
Une solution est d'avoir un membre de la classe de type
Scanner
:Et dans le constructeur, construire:
Maintenant
input
n'est pas limitée à la portée du constructeur, il sera accessible par le biais de l'ensemble de la classe.Considérons cet exemple:
OriginalL'auteur Maroun
input
n'est pas accessible à l'extérieur du constructeur...elle est déclarée à l'insisde le constructeurOriginalL'auteur Vinayak Pahalwan