2016-04-26 6 views
0

Ich versuche, eine Klasse namens "items" mit vier privaten ArrayList<String> Objekte mit einer Methode zu erstellen, die Elemente zu den ArrayLists je nachdem, welche Art von Element es ist, hinzufügt. Es gibt vier Arraylisten:Wie überprüft man die Parameter für ein neues Objekt in einer ArrayList?

private ArrayList<String> itemlistweapons = new ArrayList<String>(); 
private ArrayList<String> itemlistapparel = new ArrayList<String>(); 
private ArrayList<String> itemlistaid = new ArrayList<String>(); 
private ArrayList<String> itemlistmisc = new ArrayList<String>(); 

Die Methode, die Elemente in den Listen den folgenden Code fügt hinzu:

public void additem(String name, String type){ 
    itemlistweapons.add(new Item(name, type).toString()); 
} 

Das Item-Objekt fügt es aus einer anderen Klasse kommt Item mit einem Konstruktor aufgerufen, der den Namen gibt des Artikels und des Typs. So

, was ich möchte, ist wissen, wie kann ich das sagen:

public void additem(String name, String type){ 
    if //the item added has the type "weapon" 
     itemlistweapons.add(new Item(name, type).toString()); 
    else if //the item added has the type "apparel" 
     itemlistapparel.add(new Item(name, type).toString()); 
    else if //the item added has the type "aid" 
     itemlistaid.add(new Item(name, type).toString()); 
    else if //the item added has the type "misc" 
     itemlistmisc.add(new Item(name, type).toString()); 

Was würde ich anstelle dieser Kommentare setzen?

+0

'if (Typ == "Waffe")' ... – theblindprophet

+0

if ("Waffe" .equals (Typ)) –

Antwort

2
if ("weapon".equals(type)) { 

Hinweise:

  • gaben Stringliteral ersten Nullpointerexceptions zu vermeiden

  • Sie sollten eine Illegal werfen, wenn der angegebene Typ nicht

    gehandhabt werden kann
  • vielleicht einen switch/case Block ist eine gute Alternative

  • vielleicht möchten Sie List<Item> statt List<String> haben. Du kannst die Schnur immer aus dem Gegenstand bekommen, andersherum kann es schwierig sein.

  • Wenn Sie List<Item> haben, brauchen Sie vielleicht keine vier separaten Listen mehr. Behalte einfach alles in einer Liste. Du kannst immer nach dem Typ filtern, um nur die Waffen zu erhalten. Das wäre flexibler.

  • vielleicht sollte Typ sein, ein enum

Verwandte Themen