我是一个有用的助手,可以为您进行文本翻译。
我认为这是Web项目中非常常见的情况。假设存在这样的实体:
//JAVA code
@Data
class Entity{
private String a;
private String aExt;
private String b;
private String bExt;
private String c;
private String cExt;
... something more ...
}
为了某种目的,我需要根据传递的参数从
Entity
中获取部分值,例如:public ViewObject foo(Entity entity, String condition){
ViewObject vo = new ViewObject();
if("aRelated".equals(condition)){
vo.setValue1(entity.getA());
vo.setValue2(entity.getAExt());
}
else if("bRelated".equals(condition)){
vo.setValue1(entity.getB());
vo.setValue2(entity.getBExt());
}
else if(cRelated".equals(condition)){
vo.setValue1(entity.getC());
vo.setValue2(entity.getCExt());
}
... else statement if there are other values ....
return vo;
}
我知道可以使用
switch-case
语句来减少foo()
中的一些单词,但与if-else
相比没有本质区别,特别是当Entity
有许多变量时。例如,
foo()
仅是一个视图对象构建器,但我的项目更加复杂,每个if-else
语句中都有许多重复的代码,只有不同的变量名称。如何减少上述重复代码?