Jak wyświetlić pole obiektu zapisanego w liście?

0
public class Person
{
    private String name;
    private ArrayList<Person> friends = new ArrayList();

    public Person(String name)
    {
        this.name = name;
    }

    public void beFriend(Person p)
    {
        friends.add(p);
    }

    public void unFriend(Person p)
    {
        friends.remove(p);
    }

    public ArrayList getFriends()
    {
        return friends;
    }

    public String getName()
    {
        return name;
    }
}
public class PersonTest
{
    public static void main(String[] args)
    {
        Person p1 = new Person("Patrycja");
        Person p2 = new Person("Ewa");
        Person p3 = new Person("Bartek");
        Person p4 = new Person("Kacper");
        Person p5 = new Person("Paweł");

        p1.beFriend(p5);
        p1.beFriend(p2);
        p1.beFriend(p3);

        for (int i = 0; i < p1.getFriends().size(); i++)
        {
            System.out.println(p1.getFriends().get(i).getName()); //<-- Dlaczego nie mogę uzyskać dostępu do pola za pomocą getName()?
        }

    }
}

Dlaczego nie mogę uzyskać dostępu do pola za pomocą getName()?

Moim celem jest wyświetlenie imion osób z listy znajomych obiektu klasy Person, lista przechowuje inne osoby.

3

Ponieważ metoda public ArrayList getFriends() zwraca prehistorycznego ArrayList zamiast ArrayList<Person>,
Możesz zwracać ogólną listę List<Person> ale nie prehistoryczną której metoda .get() zwraca Object.

1

Oj ale głupek ze mnie, dzięki za szybką odpowiedź :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1