用于Java和if循环代码优化的if语句
我有一个ArrayList<String>
,我需要遍历它,列表中的内容必须执行某些操作。我希望优化迭代和比较,可以吗
我的代码:
Person
类(包括getters
和setters
):
private String employeeID;
private String firstName;
private String lastName;
private String gender;
private String mobileNo;
private String emailID;
我的计算机ArrayList
,myList- [firstName, gender, mobileNo, emailID]
。我如何优化下面显示的逻辑以避免如此多的if
条件
Person p =new Person ();
for(String element:myList)
{
if("employeeid".equalsIgnoreCase(element))
{
p.setemployeeID("");
}
if("firstname".equalsIgnoreCase(element))
{
p.setfirstName("");
}
if("lastName".equalsIgnoreCase(element))
{
p.setlastName("");
}
if("gender".equalsIgnoreCase(element))
{
p.setgender("");
}
if("mobileno".equalsIgnoreCase(element))
{
p.setMobileNo("");
}
if("emailid".equalsIgnoreCase(element))
{
p.setEmailID("");
}
}
# 1 楼答案
编译器能够优化将语句切换到查找表中,并在处理枚举时对文本执行编译时检查。 也就是说,您应该始终使用switch语句进行3次以上的比较。因此,您的代码变为-
# 2 楼答案
这里没有太多的工作要做,但也许
switch
在美学上更令人愉悦。尽管您必须确保您的输入是仅小写或仅大写:如果您决定保留
if
设计,那么一定要使用if-else
,这样您就不必在每次迭代中运行所有if
最后,这可能不是设计你想要做的任何事情的最佳方式。您应该考虑一些更为面向对象的性质,比如在^ ^ {CD5}对象实例化时,将^ {< CD5> }对象的参数传递给构造函数。
编辑:我知道您想要使用^{} ,您应该这样定义它:
# 3 楼答案
我没有进行测试,但是(如果字符串和方法名称相同)可以使用反射,如下所示: