J. Doe
J. Doe

Reputation: 5

Arraylist add object by setter

I have created ArrayList and make setter and getter for it. In the other class i want to add objects in this array. But my code doesn't works. i think i need to add in method setter for array some other code..

public class DataVar {

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

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

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

//Here is another class

public class LinksAd {

public void getAllLinksAd() {

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

Upvotes: 0

Views: 4211

Answers (3)

Felix Gerber
Felix Gerber

Reputation: 1651

You could do a mehtod to add an Item like this:

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

In LinksAd you have to wirte:

dataVar.addStringToList(link);

Upvotes: 0

theMind
theMind

Reputation: 194

You can implement generic setter method.

This is DataVar class:

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");
        }
    }
}

And this is calling setter method example:

Main class:

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);
    }
}

Output:

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

So, you can set ArrayList, also you can set String.

Upvotes: 0

ashosborne1
ashosborne1

Reputation: 2934

Looking at your code you are trying to add a String type, where your code specifies that you are expecting an ArrayList. Assuming you just want to add a string to your arraylist the following will work:

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

Upvotes: 4

Related Questions