我是java的新手,并尝试克服它。我有像(String URL, int Score
)这样的数据,我想在数组列表中实现它。我搜索了如何在ArrayList
或LinkedList
中实现多种类型的变量,发现解决方案是从超类创建子类,我创建了这个子类:
public class MySubClass extends MyList{
public String URL;
public int UrlScore;
public MySubClass (String a, int b){
URL = a;
UrlScore = b;
}
}
我的超级类是:
import java.util.ArrayList;
public class MyList {
public static void main(String[] args) {
ArrayList <MySubClass> myList_1 = new ArrayList <MySubClass> ();
myList_1.add("http://www.something.com", 5);
System.out.println(myList_1);
}
}
当我尝试使用添加Add
对象时遇到错误?错误说:
ArrayList 类型中的方法 add(int, MySubClass) 不适用于参数 (String, int)
你能告诉我我哪里做错了吗?我该如何修复它?提前谢谢。
您可以通过创建MySubClass的对象并将其添加到列表中来修复它,例如
MySubClass obj = new MySubClass("http://www.something.com", 5);
myList_1.add(obj);
你应该将MySubClass
的实例添加到列表中:
myList.add(new MySubClass("http://www.something.com", 5));
顺便说一句,MySubClass
没有必要成为MyList
的子类.
如注释中所述,您应该重写MySubClass
中的 toString()
方法,以便根据需要显示MySubClass
的每个实例。
可能的实现:
public class MySubClass
{
public String URL;
public int UrlScore;
public MySubClass (String a, int b)
{
URL = a;
UrlScore = b;
}
public String toString()
{
return URL + "=" + UrlScore;
}
}
import java.util.ArrayList;
public class MyList {
public static void main(String[] args) {
ArrayList <MySubClass> myList_1 = new ArrayList <MySubClass> ();
MySubClass myobj = new MySubClass("http://www.something.com", 5);
myList_1.add(myobj);
}
}
尝试这样的事情,代码将起作用。