【发布时间】:2020-01-26 01:58:42
【问题描述】:
我意识到以前有人问过这个问题的变体,但我很难弄清楚如何完成以下任务:
我有一个看起来像这样的对象(请注意,“技能”和“认证”是 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 对象的 List 并检查它是否包含 JAVA?
编辑:事实证明我犯了一个根本性错误。在 OOP 中,最好不要将一个类的数据暴露给另一个类。相反,我在 Employee 类中编写了 getter,然后从我的其他类中调用这些 getter。这样,Employee 中的数据就不会直接暴露给需要它的类。
【问题讨论】:
-
你能分享一下那个枚举技能的定义吗?
标签: java loops object arraylist