bean里大量的相同的字段,每个字段都有isChecked和content属性,所以需要每一个都判断一遍是否选中,选中再显示内容
稍微举下例子
public class FittingsInfo {
private Field companyCn;//中文公司名
private Field companyEn;//英文公司名
private Field tel;//电话
private Field orderNum;//订单号
...
...
}
public class Field {
private boolean isChecked;
private String content;
...
...
setter getter constructor都省略了
然后
if (fittingsInfo.getCompanyCn().isChecked()) {
...
}
if (fittingsInfo.getCompanEn().isChecked()) {
...
}
里面逻辑全一样,少说得有三十多个字段,就一个判断几百行出去了....有没有什么办法简化代码呢
我的想法是可以在FittingsInfo类里准备一个boolean类型的数组,写一个方法填充这个数组,数组的每个元素代表一个字段,然后将这个数组返回出去,然后判断的时候就可以用循环了,当然前提是字段的顺序一定要和数组对应好
写一个循环,然后把元素都放在集合中,之后循环调用
我之前也碰到过类似的,我是在bean里面实现if判断,调用的字段。
1.在FittingsInfo里面写一个方法
public Field getInfo(int n){
if(n == 1){return getCompanyCn(); }
if(n == 2){return getCompanEn(); }
...
}
这个get方法有点繁琐了
但是当你调用get方法时,直接循环:
for(int i = 0; i<字段总数; i++){
if( fittingsInfo.getInfo(i).isChecked() ){
//你的逻辑
}
}
仅供参考,希望你有更好的解决方法告知我,嘿嘿
但是一个问题就是,如果你的bean是mybatis自动生成的那种,你下次如果向这个bean添加新的字段 ,再次使用自动生成会清楚你写的方法。不知道你现在找到更好的方法没