列出数组的元素作为字符串麻烦? (JAVA)

时间:2017-11-04 21:52:29

标签: java arrays string

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。

由于

2 个答案:

答案 0 :(得分:1)

membersMembership个对象的集合,因此您的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()方法。