我想创建一个程序,您可以在其中命名String(例如“武器”),然后将该String添加到ArrayList。但不要自己输入:
MyArrayList.add(Egg); //for example
这样新的Object就会自动添加到Arraylist中。
所以我做了什么,我创造了一个能够持有武器名称的Arraylist。我创建了一个方法,你可以在主类中“制造”一个具有武器名称的对象。但是我如何创建一个东西,当一个对象(在主类中)被创建时,它会自动将它自己添加到arraylist。
(对不起解释,我来自荷兰所以...如果这是一个不好的解释,请告诉我,以便我可以改进它)
答案 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;
}
}