====== 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.
----