Tableau-Liste à l'intérieur de constructeur comme l'un des paramètre, comment faire pour créer un nouvel objet?
je vais avoir des problème avec un constructeur qui prend une liste de tableaux comme l'un des arguments.
public class ItemisedProductLine extends ProductLine{
public static ArrayList<String> serialNumbers;
public ItemisedProductLine(String productCode, double recRetPrice, double salePrice, int quantity, String description, ArrayList<String> SerialNumbers){
super( productCode, recRetPrice, salePrice, quantity, description);
this.serialNumbers = serialNumbers;
}
}
Maintenant dans mon Inventaire je veux instancier un nouvel ItemisedProductLine et de passer un arryList de numéro de série du constructeur
ItemisedProductLine item = new ItemisedProductLine("productCode", 2600, 2490, 2, "descrpition", new ArrayList<String>("1233456", "6789123"));
Est-ce possible en Java? Il semble ne pas être une tâche commune à faire, n'a pas trouvé d'exemple.
Comme alternative je pourrais avoir utilisé un generic array au lieu de Tableau-Liste, mais je ne peux pas l'initialiser en raison de la taille inconnue
Espérons que je ne suis pas oublier une autre parenthèse 🙂
Dernière Chose est que l'erreur est "pas de constructeur trouvé ArraList<>"
Comme une note de côté, vous n'avez pas besoin de déterminer la taille d'une liste de tableaux à l'avance. C'est juste a tableau dans son nom, car il est soutenu par un tableau, et vous n'avez pas vraiment besoin de beaucoup d'attention pour les détails de mise en œuvre. De cette façon, vous pouvez développer ou réduire la liste que vous s'il vous plaît.
Rien à voir avec ta question, mais juste curieux. Pourquoi vous mettez-vous un champ statique dans le constructeur comme ça? Aussi, si vous pouvez modifier ou ajouter un nouveau constructeur, vous pouvez faire le dernier champ d'un vararg et de construire la liste de tableaux à partir de la vararg tableau. Alternativement, vous pouvez simplement stocker le tableau.
Rien à voir avec ta question, mais juste curieux. Pourquoi vous mettez-vous un champ statique dans le constructeur comme ça? Aussi, si vous pouvez modifier ou ajouter un nouveau constructeur, vous pouvez faire le dernier champ d'un vararg et de construire la liste de tableaux à partir de la vararg tableau. Alternativement, vous pouvez simplement stocker le tableau.
OriginalL'auteur fra pet | 2012-05-12
Vous devez vous connecter pour publier un commentaire.
Vous pourriez essayer:
billc.cn: merci, en fait je n'ai pas vraiment besoin du champ statique, je n'ai jamais utilisé de vararg (je suis un total débutant) mais merci pour l'option, elle sera ma prochaine chose à regarder et apprendre.
OriginalL'auteur Edwin Dalorzo
@Edwin réponse est bonne, mais vous pourriez aussi le fossé de la
ArrayList
constructeur en faveur d'une distribution simple.Arrays.asList
déjà crée unnew ArrayList
pour vous.(ArrayList<String>) Arrays.asList("1233456", "6789123")
Arrays.asList()
parce que le type réel il retourne pourrait changer à l'avenir de faire de votre code par inadvertance échouer. La méthode doit être une boîte noire pour nous, et nous ne dépendent pas seulement de son interface publique. À savoir, tout ce que nous pouvons dire est qu'il renvoie uneList
.OriginalL'auteur Jake Biesinger
Il y a un autre chemin à l'aide Java 8 Flux API.
Vous pouvez créer un Flux d'objets et de les collectionner comme une Liste (ou d'un Ensemble ou quelque cause que ce soit, vous pouvez construire votre propre collecteur).
OriginalL'auteur George Siggouroglou