0
votes

Essayer d'ajouter une liste de matrices à un objet de panier

J'essaie d'ajouter des choses à un chariot, donc dans ma classe de produit a fait un chariot comme:

shoppingCart.add(temp);


2 commentaires

Vous approchez-vous de la mauvaise manière. Vous devez avoir une classe spécifique pour maintenir le prix et la quantité de code à barres, puis votre liste doit contenir des objets de cette classe. Si vous insistez sur l'utilisation d'une liste de chaîne, utilisez shoppingcart.addall (TEMP) à la place mais je vous conseille fortement contre elle


Partagez le code de votre classe de produit


4 Réponses :


1
votes

shoppingcart est de type arraylist mais vous essayez d'ajouter une liste . Soit vous devez modifier shoppingcart à une liste > ou si vous souhaitez ajouter toutes les entrées l'une après l'autre à la liste que vous devez réécrire ShoppingCart.add (TEMP); à shoppingcart.addall (TEMP); .


0 commentaires

0
votes

Votre ShoppingCart est une liste de chaînes, ce qui signifie que chaque élément que vous souhaitez mettre en place devrait être une chaîne.
Votre TEMP n'est pas une chaîne, c'est aussi une gamme de chaîne, de sorte qu'il ne peut pas fonctionner. Si votre définition de TEMP est vraiment ce que vous voulez, la définition de shoppingcart devrait être: xxx


0 commentaires

2
votes

Le problème se produit parce que vous essayez d'ajouter une liste list code> à acuisierCart code> de type arraylist code>

Pour résoudre ce problème, je suggère de créer une nouvelle classe appelée article par exemple, qui sera le type de votre p> instance code> p> xxx pré>

alors, votre ShoppingCart sera une arraylist code> d'éléments p> xxx pré>

et vous devez modifier votre méthode addtobasket comme suit p>

public void addToBasket(String barcode, double price, int quantity) {
    Item temp = new Item(barcode,price,quantity);
    shoppingCart.add(temp);
}


3 commentaires

J'ai travaillé et mis en œuvre cela, mais je continue à obtenir une erreur NullPointerException sur la ligne ShoppingCart.Ajouter (TEMP). Est-ce parce que j'ai placé le constructeur?


En effet, votre liste shoppingcart est vide, vous devez en créer une nouvelle instance avant de commencer. Ajoutez ceci: shoppingcart = nouveau arraylist <élément> ();


Veuillez accepter ma réponse en cliquant sur la coche de la gauche de ma réponse, vous pouvez uppouver si vous voulez aussi :) merci



2
votes

comme correctement @bashir a signalé, vous ajoutez des types code> différents code> de variables à un type spécifique de la liste ArrayList ShoppingCart Code>.

Je voudrais Pour expliquer un couple d'abord, au lieu de copier-coller la solution forte> ils vous ont donné, vous devez comprendre la logique derrière elle. p>

L'objet code > de cette instance arraylist code> ne peut recevoir qu'une chaîne code> à son ajoutez () code> méthode. P>

Il ne vous permet pas Ajouter code> le prix code> ainsi que la quantité code> car TEMP code > Est-ce qu'un arraylist code> pas un ArrayListe code> NOR a une arrayliste code>. p>

Votre travail autour, c'est de le convertir en une chaîne code> de code> et de l'ajouter à la liste ArrayList TEMP code> qui est correcte de manière programmatique, mais ce n'est pas Programmation orientée objet Code>. P>

  • Pourquoi ArrayList > Activités: Code> Ne fonctionnera pas pour vous: Li> ul>

    Bref Exemple: p>

    Disons que vous obtenez le tableau imbriqué code> comme ceci: p>

    ArrayList<String> itemDetails = shoppingCart.get(0);
    String details[] = new String[3];
    details[0]=itemDetails.get(0);//barcode
    details[1]=itemDetails.get(1);//price
    details[2]=itemDetails.get(2);//quantity
    


2 commentaires

Merci pour cette explication! Il est très clair et bien écrit! Je comprends, mais je continue à obtenir une erreur NullPointerException dans le fichier de panier.


Probablement parce que vous essayez de récupérer une valeur d'un index qui n'en a pas, assurez-vous de créer un nouvelle arrayliste <> () et récupérez correctement les éléments.