Générer des noms d'objets - Java - Programmation
Marsh Posté le 15-03-2008 à 16:10:56
et si tu utilisais plutot un vector , ou une hashtable pour stocker tes Student ?
Marsh Posté le 15-03-2008 à 16:19:31
Ha ^^ je n'ai pas encore vu ça au cours!
Je vais faire une petite recherche google là-dessus. Je repasserai si je ne m'en sort pas!
Merci
edit: j'pense que j'vais utiliser le hashtable, ça me paraît bien
Marsh Posté le 17-03-2008 à 16:09:30
Ni Vector, ni Hashtable, qui sont obsolètes depuis Mathusalem (à l'échelle de l'histoire de Java). Autant prendre les bonnes habitudes dès le début, alors utilise plutôt ceci :
Code :
|
ou
Code :
|
Marsh Posté le 17-03-2008 à 17:20:24
Bonjour,
J'ai regardé un peu le tableau HasMap et ça me paraît bien.
Comme vous avez été plusieurs à me répondre, j'en profite pour vous poser une autre question:
En fait, je dois faire un projet (gestion d'une université, etc etc, j'vous passe tous les détails...).
Ce que je voulais, c'est que lorsqu'on crée un compte pour se loguer sur le programme, le compte ait un identifiant (matricule) différent à chaque fois, et qui commence par une lettre pour préciser le type de compte (Exemple: T pour Teacher, A pour Admin, etc).
J'ai donc créé une classe Matricule qui me retourne un String:
Code :
|
Mais les lignes en gras posent problème! j'ai les erreurs suivantes:
Citation : .\Matricule.java:58: variable previousMatricule might not have been initialized |
J'me suis dit qu'il fallait au moins initialiser les deux variables et j'ai réécrit ces deux lignes comme ceci:
Code :
|
et
Code :
|
Ainsi, plus de problème à la compilation. Mais lors de l'éxécution, il m'affiche ceci:
Citation : Exception in thread "main" java.lang.NumberFormatException: For input string: "" |
Alors là je suis complètement perdu! Vous pourriez me dire ce que j'ai raté s'il vous plaît?
Edit: Ajout de quelques explications dans mon code.
Marsh Posté le 17-03-2008 à 17:24:53
Tu initialises tes valeurs à "", et la ligne :
Code :
|
cherche à transformer "previousMatricule" en nombre.
Or, "" c'est pas un nombre.
I faudrait mettre "0", par exemple.
Marsh Posté le 17-03-2008 à 17:34:42
Et j'ai une autre question:
Pour l'écriture et la lecture du fichier, j'ai commencé par le nom du package.
Code :
|
Est-ce une pratique correcte?
J'ai un doute parce qu'aucun fichier ne se crée et que lorsque j'exécute mon tester, il ne m'affiche rien du tout.
Code :
|
Est-ce que je suis obligé de donner un chemin de fichier commençant par mon DD, du style "cprojet/SchoolOrganizer/..." ?
A ce moment là c'est un peu embêtant si je veut utiliser mon programme sur un autre pc :s
Marsh Posté le 17-03-2008 à 17:58:04
A vérifier, mais a priori quand tu crées un fichier en Java, il faut que le répertoire dans lequel il se trouve existe déjà. Pour cela, il te suffit de récupérer l'instance de File du répertoire parent (méthode getParentFile()), et de mémoire, il doit y avoir une méthode mkdirs() sur une instance de File pour créer un répertoire s'il n'existe pas et, éventuellement, si ses propres répertoires parents n'existent pas.
Un autre conseil : évite les blocs catch vides. Tu te serais rendu compte tout seul de ton erreur sur le Integer.parseInt() si tu avais correctement traité l'erreur IOException dans tes blocs "catch(IOException)".
Marsh Posté le 17-03-2008 à 18:03:44
En fait je n'ai pas encore appris à utiliser les IOException, j'essaye de prendre un peu d'avance sur mon projet je verrai sûrement ça dans les prochains cours théoriques. Alors pour le moment je me débrouille avec l'API et ce que je trouve sur google ^^
Bon, j'vais améliorer mon code avec la création automatique des dossiers
Marsh Posté le 17-03-2008 à 18:06:17
Dans ce cas, écris au moins "catch (IOException e) { e.printStackTrace(); }" à la place de "catch (IOException e) { }". Même si tu ne comprends pas forcément ce que cela signifie, ça t'évitera de passer à côté des erreurs qui se produisent.
Marsh Posté le 15-03-2008 à 16:09:54
Bonjour,
J'ai une petite question:
J'aimerais que mon programme en java puisse générer des noms d'objets pour pouvoir après faire ceci:
Student E001 = new Student();
Student E002 = new Student();
Student E003 = new Student();
...
Donc en fait j'aurais un String matricule = E001.
J'utilise une méthode pour qu'il passe à matricule = E002.
Mais après je ne peux pas faire Student matricule = new Student(); !
Vous avez une idée de comment faire pour qu'il accepte le Exxx que le programme créera?
Merci d'avance,
Renaud.