У меня проблема с доступом к arraylist, который я создал в классе. Я попытался пройти ответы на вопросы, похожие на мои, но, к сожалению, я не смог решить проблему.Вызов объекта arraylist из другого класса и итерация через него
Поэтому у меня есть два класса Student
и Person
, и я хочу, чтобы перебирать ArrayList из Person
в классе Student
. (Кодекс действительно не имеет смысла, я знаю. Я просто хочу понять).
Я попробовал два подхода:
1) создание переменного типа Person в классе Student и призывающие методы получить от лица класса.
2) создание метода get в классе человек, который возвращает arraylist. Оба не работают должным образом, когда я пытался вызвать метод isHere в основном методе. (False было напечатано вместо истинного)
Я думаю, элементы уже добавлены. Как это можно решить?
import java.util.ArrayList;
public class Student {
private Person p;
private String name;
private int age;
private String address;
public Student() {
}
public Student(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public boolean isHere(String name) {
p = new Person();
// I also tried for(Person per : p.getList)
for (Person per : this.getL()) {
if (per.getName().equals(name)) {
System.out.println("hi");
return true;
}
}
return false;
}
public ArrayList<Person> getL() {
return p.getList();
}
public Person getP() {
return p;
}
public void setP(Person p) {
this.p = p;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Person
класс:
import java.util.ArrayList;
public class Person {
private String name;
private ArrayList<Person> list = new ArrayList<Person>();
Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList<Person> getList() {
return list;
}
public void setList(ArrayList<Person> list) {
this.list = list;
}
public void add(String name) {
list.add(new Person(name));
}
}
удалите 'p = new Person();' из метода isHere и установите человека с вашим 'public void setP (Person p) 'перед вызовом isHere. –