我想知道如何在自定義ArrayList中添加字符串值。Java:如何在自定義ArrayList中添加字符串值
我曾嘗試下面的代碼,但它給了我錯誤
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
aList.add("My Name");
,並試圖這也;
aList.addAll("My Name");
aList.add((MyCustom)"My Name");
我想知道如何在自定義ArrayList中添加字符串值。Java:如何在自定義ArrayList中添加字符串值
我曾嘗試下面的代碼,但它給了我錯誤
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
aList.add("My Name");
,並試圖這也;
aList.addAll("My Name");
aList.add((MyCustom)"My Name");
假設你MyCustom
類,並有物業說name
:
class MyCustom{
String name;
public setName(String name){
this.name=name;
}
.....
}
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
MyCustom myCustomObject=new MyCustom();
myCustomObject.setName("abc"); // here set the properties for your custom class object
aList.add(myCustomObject);
您已經創建了一個將包含MyCustom
類型的對象,所以,除非你的對象擴展字符串,你不能添加字符串給它的列表。
如果您希望將包含字符串和MyCustom對象,所以你必須創建列表像這樣的列表:
List<Object> list = new ArrayList<Object>();
list.add(new MyCustom(...));
list.add("Some String");
使用原始類型是不好的,如果不是爲了向後兼容,很可能會被Java禁止。使用'List
@KuluLimpa我意識到我忘記了當我輸入答案。謝謝。 – Hunsu 2014-10-04 19:12:16
正如前面提到的,你的「MyCustom」既不是孩子,也不字符串的父(也不可能)。 這會使我們想到您的「MyCustom」對象或您希望它執行/執行的操作。
通過使用下面的代碼,您將List中的對象類型限制爲Mycustom,這很好。但是如果你必須在該列表中添加一個字符串,那麼你應該刪除這些類型。另外使用List接口是一種更好的做法。
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
List aList = new ArrayList(); //This will allow all objects to be added to list.
,或者根據您的需要進行MyCustom對象,你可以修改它使用如下: aList.add(new MyCustom("Name String"));
或 aList.add(new MyCustom().setName("Name String"));
的ArrayList是用Java泛型類型。意味着它可以存儲任何對象。但要將對象存儲在ArrayList中,我們需要指定類名,這意味着ArrayList只存儲在聲明數組列表時指定的類名。
你的情況
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
聲明只具有MyCustom類對象,但
aList.add("My Name");
你存儲的字符串值的數組列表。並且String類和MyCustom類之間沒有關係。所以java編譯器顯示錯誤。要實現這一目標需要實現兩種
ArrayList<String> aList = new ArrayList<String>();
aList.add("My Name");
或
Class MyCustom {
String field;
public void setField(String f) {
field=f;
}
public String getField() {
return field;
}
}
然後
ArrayList<MyCustom> aList = new ArrayList<MyCustom>();
aList.add(new MyCustom().setField("My Name"));
'String'不延長'MyCustom',讓你在的地方使用'String' 'MyCustom'。順便說一下,我很確定,'MyCustom'也不會將'String'擴展爲'String'。 – 2014-10-04 11:02:22
@Dmitry Ginzburg對此有何其他選擇? – 2014-10-04 11:02:57
這取決於你想達到什麼。例如,你可以使用'ArrayList