Arraylist通过setter添加对象

时间:2015-11-16 11:18:06

标签: java arraylist

我创建了ArrayList并为它创建了setter和getter。 在另一个类中,我想在此数组中添加对象。但我的代码不起作用。我想我需要在方法设置器中添加一些其他代码...

public class DataVar {

private ArrayList<String> arrayLinks = new ArrayList<>();  

public ArrayList<String> getArrayLinks() {
        return arrayLinks;
    }

    public void setArrayLinks(ArrayList<String> arrayLinks) {
        this.arrayLinks = arrayLinks;
    }
}

//这是另一个类

public class LinksAd {

public void getAllLinksAd() {

DataVar dataVar = new DataVar();
 String link = "href";
 dataVar.setArrayLinks(link) }}

3 个答案:

答案 0 :(得分:4)

查看代码,您正在尝试添加String类型,其中您的代码指定您期望ArrayList。假设你只想在你的arraylist中添加一个字符串,那么以下内容将起作用:

 public void setArrayLinks(String arrayLinks) {
    this.arrayLinks.add(arrayLinks);
}

答案 1 :(得分:0)

你可以做一个mehtod添加这样的项目:

public void addStringToList(String s)
{
   arrayLinks.add(s); 
}

LinksAd中你必须得到:

dataVar.addStringToList(link);

答案 2 :(得分:0)

您可以实现通用的setter方法。

这是DataVar类:

public class DataVar {
    private List<String> itemList=new ArrayList<String>();

    public List<String> getItemlist() {
        return itemList;
    }

    public void setItemList(Object list) {
        if (list.getClass().equals(String.class)) {
            itemList.add((String)list);
        }
        else if (list.getClass().equals(ArrayList.class)) {
            itemList = (ArrayList<String>)list;
        }
        else {
            throw new Exception("Rejected type- You can set String or ArrayList");
        }
    }
}

这是调用setter方法的例子:

主要课程:

public static void main(String[] args) {
    List<String> exampleList = new ArrayList<String>();
    exampleList.add("This example");
    exampleList.add("belongs to");

    String owner = "http://www.javawebservice.com";

    DataVar dataVar = new DataVar();
    dataVar.setItemList(exampleList);
    dataVar.setItemList(owner);

    for(String str:dataVar.getItemlist()){
        System.out.println(str);
    }
}

输出:

This example  
belongs to  
http://www.javawebservice.com

因此,您可以设置ArrayList,也可以设置String。