2017-10-21 2 views
0

Ich habe eine Klasse zum Erstellen von grundlegenden Lebensmittelgeschäft Elemente (Klasse storeItems). Ich möchte zulassen, dass der Benutzer seinen eigenen Lebensmittelgeschäft-Artikel erstellt, indem er ein neues Klassenobjekt basierend auf Parametern erstellt, die ich vom Benutzer erhalte. d. h .: "Wie ist der Name?" "Was ist der Preis?" "Wie viel auf Lager?" usw. Ich möchte auch nicht die Anzahl der Objekte definieren, die erstellt werden können, damit sie nach Bedarf vom Benutzer erweitert werden können.Ist es möglich, Klassenobjekte basierend auf Eingaben des Benutzers zu erstellen?

Alles ist richtig strukturiert, abgesehen von den Namen der Objektvariablen.

Wie würde ich diese Objekte erstellen? Die meisten meiner Googler haben vorgeschlagen, Karten zu verwenden, aber ich kann nicht für das Leben von mir herausfinden, wie ich das strukturieren würde.

Dies ist im Wesentlichen, was ich versuche zu tun: zu Unrecht

public static Map<String,storeItems> storeItemMapper = new HashMap<String,storeItems>(); 

public static void itemBuilder(String mapObjName, String itemName, double price, int initialQuantity) { 
    storeItems object[i] = new storeItems(itemName, price, initialQuantity); 

    storeItemMapper.put(mapObjName, object[i]); 
} 
+1

Was läuft falsch? Was funktioniert nicht wie geplant? Btw, Klassennamen sollten im Camel Case-Standard sein, d. H. StoreItems anstelle von storeItems. – Doleron

Antwort

0

Sie die Variablendeklaration Indizierung:

storeItems object[i] = new storeItems(itemName, price, initialQuantity); 

Versuchen:

storeItems object = new storeItems(itemName, price, initialQuantity); 

Ohne den Index [i ]. Und wie ich im Kommentar sagte, sollten Sie den CamelCase-Standard verwenden, um Klassen zu benennen:

StoreItems object = new StoreItems(itemName, price, initialQuantity); 
+0

Ich weiß, dass Objekt [i] nicht funktioniert, ich versuche herauszufinden, ob es möglich ist, ein Objekt nur basierend auf Benutzereingaben zu benennen. Das war der beste Weg zu erklären, was ich zu tun versuche. Um ein Beispiel zu geben: Ich würde nach Eingabe fragen, und dann i = reader.nextLine(); –

+0

Was meinst du mit "ein Objekt benennen"? Setzen Sie einen Attributwert des Objekts oder machen Sie ein Mapping ("Name" -> Objekt), um das Objekt später unter diesem Namen wiederzufinden? Im letzten Fall können die Map-Schnittstelle und ihre Implementierungen (HashMap, Hashtable, TreeMap, ...) einen ephemeren Mechanismus (im Speicher) bereitstellen. Wenn Sie etwas Persistentes benötigen, sollten Sie ein serialisiertes Formular als dateibasierte Persistenz verwenden oder das Objekt in einer relationalen oder nicht-relationalen Datenbank speichern. – Doleron

+0

Ich versuche, den Benutzer die Eingabe für den Objektvariablennamen geben zu lassen. –

Verwandte Themen