====== LAJ1/P1 - Java1 - Projet1 - Shop - Précisions ====== ==== FAQ ==== //Voici quelques questions déjà posées ... peut-être y trouverez vous votre bonheur// ==Question: Le Data.java de pbt est-t-il compatible avec Windows?== Je n'arrive pas à le compiler dans le cmd et, avec NetBeans il n'arrive pas à générer les fichiers. @Mathieu A. Oui, la classe //Data// est "compatible Windows". Le problème vient certainement d'ailleurs ... On peut en discuter sur [[http://fora.namok.be|fora]] si tu veux. --Pbt MBA-- Ca dépend ce qu'on entend par compatible : le java est bien compatible, mais la manière dont sont crées les noms de fichiers ne l'est pas. Vous pouvez remplacer System.getEnv ("HOME")+ ... par private final static String FILENAME_FAVORITES = System.getenv("HOMEDRIVE")+System.getenv("HOMEPATH") + "/.shop_favoriteslist.dat" ; private final static String FILENAME_SHOPPING = System.getenv("HOMEDRIVE")+System.getenv("HOMEPATH") + "/.shop_shoppinglist.dat" ; en tous cas pour XP ;-) . La commande set vous permet d'en savoir plus ... voir ci-dessous pour Vista --MBA >Il faudrait effectivement touver un moyen plus portable ... --Pbt ====A propos des tests==== On vous demande de faire des tests unitaires pour les classes FavoriteList et ShoppingList * Pour //FavoriteList// pas de problème : Après l'ajout d'un élément, on peut utiliser la méthode get() pour vérifier qu'il s'y trouve bien. * Pour //ShoppingList// c'est un peu moins simple car on ne dispose pas de méthode publique pour interroger l'ojbet. Deux solutions : * Effectuer les tests DANS la classe //ShoppingList// ce qui donne accès aux attributs privés. * Garder les test dans //ShoppingListTest// mais ajouter à //ShoppingList// une méthode publique non demandée. On vous autorise à ajouter la méthode //taille())//). Exemple : après avoir vidé la liste on vérifie que sa taille est à 0. --MCD ====A propos des arguments avec espaces en passant pas le script shop==== le script shop ne filtre pas convenablement les arguments avec espaces sur la ligne de commande ? Corrigez-le ainsi : eval java gxxxxx.projet1.Shop $@ force le shell à réévaluer la ligne de commande pour les arguments contenant des espaces doublez les guillemets : comme ceci : ./shop new art " 'mon art' " merci JCJ ;-) mba ====Contributions d'étudiants==== Afin de pouvoir être écrite dans un fichier (par exemple) une classe doit êtré étiquetée sérialisable. Ne pas oublier l'import pour le Serializable (java.io.Serializable) import java.io.Serializable; public class MaClasse implements Serializable ---- Pour intégrer un String de numéro dans un Int il faut utiliser : String str; int variable = Integer.parseInt(str); @Mathieu A. Cette phrase n'a pas beaucoup de sens ;-) Je dirais que la commande que donne Mathieu permet de convertir un //String// en //int// ... en fait //parseInt// retourne le premier entier présent dans la chaine et ce, en début de chaine. Sinon une erreur est générée. --Pbt ---- Sous vista il se peut que vous ayez un soucis avec ceci se trouvant dans la classe Data.java: private final static String FILENAME_FAVORITES =System.getenv("HOME")+ "/.shop_favoriteslist.dat"; private final static String FILENAME_SHOPPING=System.getenv("HOME")+ "/.shop_shoppinglist.dat"; Pour pallier a ce problème je vous invite a remplacer "HOME" par "public" et a tester...Normalement si c'est comme sous mon Vista les fichiers : shop_favoriteslist.dat shop_shoppinglist.dat Se trouveront dans le dossier Users\Public. ----