I'm having problems accessing a field from an array in a for-loop. I'm sure I'm just messing up the syntax:
public class Person {
String name;
Person mother;
Person father;
ArrayList<Person> children;
public boolean isMotherOf(Person pers1) {
//First check if Persons mother equals pers1
if (mother.name == pers1.name) {
//Second checks if pers1s children contains Person
for (int i = 0; i < pers1.children.size(); i++) {
if (pers1.children.name.get(i) == name) {
// ERROR ON THE LINE ABOVE: "name cannot be resolved or it not a field"
return true;
}
} // END second check
} else { return false; }
} // END method isMotherOf
}
EDIT: My code contained logic errors (compared the wrong persons). Will this safety check work, or will it yield an error if pers1 does not exist when it checks if pers1's mother has a name?
public class Person {
String name;
Person mother;
Person father;
ArrayList<Person> children;
// Checks if THIS person is the mother of pers1
public boolean isMotherOf(Person pers1) {
// Safety check: Both persons exists and Person has children and pers1 has mother
if (name == null || children == null || pers1 == null
|| pers1.mother.name == null) {
return false;
} // END safety check
// First check if Persons name equals pers1's mother
else if (name.equals(pers1.mother.name)) {
// Second check if Persons children contains pers1
for (int i = 0; i < children.size(); i++) {
if (children.get(i).name.equals(pers1.name)) {
return true;
}
} // END second check
} // END first check
return false;
} // END method isMotherOf
} // END class Person