我创建了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) }}
答案 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。