创建对象时,我可以在字符串中放置字符串吗?

时间:2014-08-19 14:56:45

标签: java arraylist

我想创建一个程序,您可以在其中命名String(例如“武器”),然后将该String添加到ArrayList。但不要自己输入:

MyArrayList.add(Egg); //for example

这样新的Object就会自动添加到Arraylist中。

所以我做了什么,我创造了一个能够持有武器名称的Arraylist。我创建了一个方法,你可以在主类中“制造”一个具有武器名称的对象。但是我如何创建一个东西,当一个对象(在主类中)被创建时,它会自动将它自己添加到arraylist。

(对不起解释,我来自荷兰所以...如果这是一个不好的解释,请告诉我,以便我可以改进它)

4 个答案:

答案 0 :(得分:0)

根据我对您的问题的解释,您希望让用户创建武器名称并将其添加到ArrayList,而无需手动添加代码来添加它?

从用户获取String输入的基本方法:

Scanner inputscan = new Scanner(System.in); //reads input from command line
String weapon = inputscan.nextLine(); //waits for user input
MyList.add(weapon);

这样,每当你打电话给" make"使用该代码的方法,它会提示用户键入武器名称,然后武器名称存储在数组中。

答案 1 :(得分:0)

也许我完全误解了它,但你想做这样的事吗?

private ArrayList<YourObject> list;

public YourMainClass(){
    list = new ArrayList<YourObject>();
}

public void onAdd(String weaponName){
    list.add(new YourObject("weaponName")); // <- this being your issue
}

YourObject类似于:

public class YourObject
{
    private String name;

    public YourObject(String n){
        setName(n);
    }

    public void setName(String n){
        // Perhaps an if-else to check if n isn't null, nor emtpy?
        name = n;
    }
    public String getName(){
        return name;
    }
}

答案 2 :(得分:-1)

我想你想用List中的对象初始化List:

尝试使用实例块,如下所示:

List<String> list = new ArrayList<String>() {{
  add("Egg");
}};

答案 3 :(得分:-2)

添加命令以将对象添加到构造函数中的集合中。(但这有点建议)

您可以创建一个辅助类来创建该对象并为该集合添加标签。

class  WeaponFactory
{
  Collection c;
  public WeaponFactory(Collection coll){c=coll;}
  public Weapon makeWeapon(String text)   // Makes sense when the object is not String , like a Weapon class which also contains stats or something
  {
   Weapon w = new Weapon(text)
   c.add(w);
   return w;
  }
}


class Weapon
{
  String name;
  public Weapon(String text)
  {
    name = text;
  }
}