Je code actuellement un RPG à l'aide de classes Java en tant que projet latéral après avoir terminé mon cours d'ODP. J'ai 3 classes que ce problème concerne. Une classe d'emploi, une classe de chevalier et une classe de compétences. Knight hérite des propriétés de la classe d'emploi et a une relation "a une" relation avec la classe de compétences. L'extrait de code de la classe Knight est présenté ci-dessous. Mon problème est que la deuxième dernière ligne, compétences.add (SLASH); obtient plusieurs erreurs. J'ai testé avec juste une liste d'entiers d'entiers pour ajouter des entiers à la liste des matrices entraînant le même ensemble d'erreurs. Y a-t-il quelque chose qui ne va pas avec mon code ou ma syntaxe ici? Ceci est le constructeur de la classe de compétences p> Ce sont les erreurs I ont rencontré p>
4 Réponses :
Vous ne pouvez pas avoir de déclaration directement à l'intérieur de la classe. Vous devez le mettre dans constructeur, méthode ou initialiseur. P>
Dans votre cas, mettez simplement compétences.add (slash); code> dans constructeur. p>
Modifiez le code de votre chevalier comme suit si vous souhaitez ajouter plus de compétences au moment de l'exécution, écrivez une méthode à. p> p> p>
private ArrayList<Skills> skills = new ArrayList<Skills>(); Skills slash = new Skills(5, 1, "Slash"); skills.add(slash); Above part or at least skills.add(slash); should be inside one of the following, Inside a method Inside the main method Inside a constructor Inside an instance initializer block or in a static initializer block
Pas tous les trois, seulement des compétences.add (barre oblique); devrait être dans la méthode, le constructeur ou le bloc statique. Les deux autres déclarations peuvent être à l'intérieur de la classe.
@Santosh le a édité.
Vous n'avez pas placé "Compétences.add (SLASH)" "Éclètie à l'intérieur d'une méthode / constructeur / initialiseur, c'est pourquoi vous avez une erreur. Changez simplement le code à -
import java.util.ArrayList; public class Knight extends Job { private ArrayList<Skills> skills = new ArrayList<Skills>(); Skills slash = new Skills(5, 1, "Slash"); public Knight() { super("Knight"); skills.add(slash); } }
Vous n'êtes pas dans une méthode, constructeur ou bloc d'initialisation. Vous définissez actuellement un autre champ de classe nommé
slash code> avec un accès privé package. Je soupçonne que vous vouliez mettre
compétences.add (nouvelles compétences (5,1, "slash")); code> dans votre constructeur.
Mettre ces lignes
arraylist privé compétences = nouvelle arrayliste (); Compétences slash = nouvelles compétences (5,1, "slash"); Compétences.Ajouter (SLASH); CODE> dans un mode de méthode / bloc d'initialisation / constructeur.
omg je ne suis pas dans une méthode et ce n'est pas une classe principale ..... merci, je dois être fatigué haha
Veuillez lire attentivement les messages d'erreur. Il vous indique avoir une erreur de syntaxe avec les identificateurs spécifiés. Vous pouvez également lire sur la façon dont Java Compiler fonctionne .