[英]Can I put a String in an Arraylist when a object is created?
我想制作一個程序,您可以在其中命名一個String(例如“ weapon”),然后將該String添加到ArrayList。 但是無需自己輸入:
MyArrayList.add(Egg); //for example
這樣新對象就會自動添加到Arraylist中。
因此,我做了一個創建一個包含武器名稱的Arraylist。 我創建了一個方法,您可以在主類中使用武器名稱“創建”一個對象。但是,當我創建一個對象(在主類中)時,如何自動將其自身添加到數組列表中。
(抱歉解釋不好,我來自荷蘭,所以...如果解釋不好,請告訴我,以便我改善)
根據我對您的問題的解釋,您希望用戶創建武器名稱並將其添加到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”方法時,它將提示用戶鍵入武器名稱,然后將武器名稱存儲在數組中。
也許我完全誤解了,但是您想做這樣的事情嗎?
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;
}
}
我認為您想在其中初始化包含對象的List:
嘗試使用實例塊,如下所示:
List<String> list = new ArrayList<String>() {{
add("Egg");
}};
添加命令以將對象添加到構造函數中的集合中。
您可以創建一個輔助類,該輔助類將創建該對象並為集合添加標簽。
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.