public class Club
{
private ArrayList<Membership> members;
public Club()
{
members = new ArrayList<Membership>();
}
public void join(Membership member)
{
members.add(member);
}
public int numberOfMembers()
{
return members.size();
}
public void listMembers1() {
for (String memberDetails: members){
System.out.println(members.toString());
}
}
}
我有另一个名为'Membership'的类,用于添加成员资格详细信息。我遇到的问题是当我尝试列出成员时,我在'for statement'区域中给出了一个错误,该区域表示Membership不能转换为String。
由于
答案 0 :(得分:1)
members
是Membership
个对象的集合,因此您的for-each
循环应使用Membership
对象而不是String
:
for (Membership memberDetails: members){
System.out.println(members.toString());
}
此外,如果您还没有,我建议您在toString()
课程中创建自定义Membership
方法,否则会打印Membership@7852e922
之类的内容。
答案 1 :(得分:0)
成员是成员资格(ArrayList)对象的集合,因此for-each循环期望Membership作为单个对象的数据类型而不是String。
所有Java类都从Object类继承toString()方法,并且如果toString()没有在类中重写以打印对象的所需字符串表示,那么它默认打印(类名+对象的哈希码) 。因此,如果您希望查看所需对象的字符串表示,那么它的类应该覆盖toString()方法。