簡體   English   中英

將類的實例添加到arraylist

[英]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

但是,請記住在嘗試使用它們之前實際初始化namenode 此外,如果您只想在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是變量名而不是類型。 初始化namenode然后可以將節點引用添加到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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM