【发布时间】:2017-03-04 17:14:52
【问题描述】:
我是 Java 初学者,我正在尝试通过创建简单的程序来学习列表的概念。所以基本上,我有两个 java 文件:CallListClass.java 和 TestList.java。
CallListClass.java
package javaSrc;
import java.util.*;
public class CallListClass {
public static void main(String[] args){
List<TestList> tl = new ArrayList<TestList>();
//TestList tlobj = new TestList();
TestList l1 = new TestList();
l1.setname("MARY");
System.out.println("Value of name::"+l1.getname());
tl.add(l1.getname()); //Error on this line-The method add(TestList) in the type List<TestList> is not applicable for the arguments (String)
}
}
TestList.java
package javaSrc;
public class TestList{
int age;
String name ="";
int empid;
int getage()
{
return this.age;
}
String getname()
{
return this.name;
}
int getempid()
{
return this.empid;
}
void setage(int age)
{
this.age = age;
}
void setname(String name)
{
this.name = name;
}
void setempid(int empid)
{
this.empid = empid;
}
}
谁能告诉我为什么List 的add 方法会出现上述编译错误?另外请让我知道我的 TestList.java 在现实世界的场景中是否可行?
【问题讨论】:
-
您正在尝试将文本添加到列表列表中。这是不允许的。你想做什么?
-
tl.add(l1)会工作 -
您是否尝试过阅读并理解错误消息?它表示您正在尝试调用方法
add(TestList),以TestList 作为参数,以String 作为参数。字符串不是 TestList。 -
tl是TestList的列表。您可以向其中添加TestList的实例,而不是String的实例。如果要将字符串添加到列表中,则需要List<String>。 -
我正在考虑创建一个包含姓名、年龄和 empid 的列表。我们有什么办法可以做到这一点?
标签: java list arraylist collections