ArrayList Java访问元素数据变量

时间:2014-09-21 21:49:59

标签: java arraylist

所以我试图访问我的ArrayList中元素的数据成员,但是eclipse显示数据成员不是字段。

System.out.println(users.get(i).name);

users是一个arrayList,语言是Java。

谢谢!

PS。

这是用户

的定义
public class User {
    public String name;
    public String password;
}

我声明用户是这样的:

ArrayList users;
users=new ArrayList<User>(NOOFUSERS);

修正错误!!谢谢!

3 个答案:

答案 0 :(得分:3)

您的ArrayList是以这种方式声明的吗?

ArrayList users = ...

如果是这样的话,这将解决您的问题。

ArrayList<User> users = ...

答案 1 :(得分:3)

ArrayList users; 
users=new ArrayList(NOOFUSERS);

Raw Type,它不是编程到List接口(在Oracle Java教程here中描述)。我会使用界面和类似的东西

List<User> users = new ArrayList<>(); // <-- diamond operator Java 7 and above,
                                      //     use <User> for 5 and 6.

答案 2 :(得分:0)

当Eclipse说“名称不是字段”时,这意味着属性名称不是“某个类”的属性。术语“某个类”是通用的,因为您没有报告声明ArrayList的代码行。 由于ArrayList是通用的,因此您可以指定其参数,即ArrayList包含的对象类型。如果不这样做,那么编译器(然后是Eclipse)假定它包含Objects的实例。 所以,你可能会宣布

ArrayList users = new ArrayList(); // ArrayList of Objects, which do not have any field called "name"

如果您以这种方式指定参数:

ArrayList<User> users = new ArrayList<User>(); // ArrayList of Users

您将修复编译错误。此外,通过这种方式,您将删除可能在ArrayList定义上获得的警告(“users is a raw type”)。