Я понимаю, что варианты этого вопроса уже задавались ранее, но мне непросто понять, как выполнить следующую задачу:
У меня есть объект, который выглядит примерно так (обратите внимание,, "Навык" и "Сертификация": ENUMS ):
Public Employee {
String name;
List<Skill> employableSkills = new ArrayList<>();
List<Certification> certifications = new ArrayList<>();
...
}
В другом классе у меня есть
List<Employee> listOfEmployees;
, и я пытаюсьперебрать его так:
// determine the total number of employees who know Java
int numberOfEmployeesWhoKnowJava = 0;
for (Employee employee : listOfEmployees) {
if (employee.employableSkills.contains( ?? )) {
numberOfEmployeesWhoKnowJava++;
}
Я пытаюсь получить точный синтаксис в операторе if.Я пробовал это:
if(employee.employableSkills.contains(Employee.EmployableSkills.JAVA)) {
, но EmployableSkills в этой строке получает «не может разрешить символ».
Как я должен пройти по списку для каждого объекта Employee и проверить, содержит ли он JAVA?
Редактировать: Оказывается, я сделал фундаментальную ошибку.В ООП лучше не выставлять данные из одного класса в другой класс.Вместо этого я написал геттеры в классе Employee, а затем вызвал их из моего другого класса.Таким образом, данные в Employee не предоставляются напрямую классу, который в них нуждался.