[英]Adding instances of class to arraylist
我試圖將一個類(基本上是一個節點)的instanes添加到我的arraylist。 我該怎么做呢? 繼承人我所擁有的:
public class Sentence {
String word;
public Sentence(String word){
this.word=word;
}
}
然后在另一個班級:
ArrayList<Object> holder= new ArrayList<Object>();
Sentence node;
String name;
//Something to initialize/set name
holder.add(new node(name));
Bu看起來似乎沒有用,我得到錯誤:無法找到節點的符號。
這些都應該工作:
holder.add(new Sentence(name)); //if name is initialized
要么
holder.add(node); //if node is initialized
但是,請記住在嘗試使用它們之前實際初始化name
和node
! 此外,如果您只想在ArrayList中存儲Sentence
對象,則可以將其定義為ArrayList<Sentence>
:
ArrayList<Sentence> holder= new ArrayList<Sentence>();
ArrayList<Object> holder= new ArrayList<Object>();
在這里寫這篇文章時,您需要指定您的Arraylist
可以容納的數據類型。 在您的情況下,當您嘗試將Sentence
類型添加到ArrayList
您應該將其更改為。 ArrayList<Sentence> holder= new ArrayList<Sentence>();
指定ArrayList
持有者將持有Sentence
類型的元素。
並添加do holder.add(new Sentence(name));
因為當你做holder.add(new node(name));
編譯器無法理解node
是什么。 node
只是Sentence
類型的引用。
是什么節點,構造函數可以通過類名調用,即Sentence
holder.add(new Sentence(name));
node
是變量名而不是類型。 初始化name
和node
然后可以將節點引用添加到List
name = "foo";
node = new Sentence(name);
holder.add(node);
您可以將實例傳遞給對象。 兩種方式都有效:
Sentence node = new Sentence(name);
holder.add(node);
要么
holder.add(new Sentence(name));
使用哪個決定取決於您是否希望將node
實例用於其他內容,而不是將其作為參數傳遞給new Node()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.