【发布时间】:2018-06-25 10:19:38
【问题描述】:
所以对于下面的问题,我尝试在网上搜索,但找不到答案。我正在使用 Java 语言工作。
所以我现在有一个课,可以说:
public Employee(String emp_id, String location, String name)
{
this.emp_id = emp_id;
this.location = location;
this.name = name;
}
我创建了多个 Employee 对象,并将其保存在 arrayList 中。现在,我的用户将询问哪些员工位于纽约,或者他们可以询问哪些员工名为 John。
这样他们就可以输入位置纽约。我需要阅读用户的请求,首先确定他们要搜索的内容,然后查看数组中是否有任何匹配的员工。
我已读入该命令,并将其保存在名为 Search 的字符串数组中。第一个索引保存对象的字段/属性的名称,第二个索引保存用户实际想要检查的内容。
String[] search = new String[] { "location", "New York" }
我正在考虑这样做:
for(Employee e: empList)
if(e.search[0].equals(search[1]))
System.out.println(e)
但是,我不能这样做,因为search[0] 不是Employee 对象的属性名称。我收到此错误:错误:找不到符号。
有没有办法让我在没有实际名称的情况下访问对象属性,这意味着名称保存在另一个 String 变量中?
请告诉我。感谢您的帮助。
谢谢。
【问题讨论】:
-
Java 中有 reflection APIs,它们可以按照这些思路进行操作,但我建议您重新考虑您的方法。另请参阅this question。
-
你可能想使用 switch,它也会有一个默认操作
-
是的,我确实在我的实际代码中使用了 equals。我忘了在这里做同样的事情。但我在这里的问题是访问属性。您能否为我的方法提供一些建议或替代方案?我有点困惑,并坚持在哪里继续。
-
我已编辑以澄清问题,并将
search全部小写。在 Java 中,只使用 CaptializedWords 作为类名是一种很好的风格。
标签: java arrays class oop search