编写用于在不同条件下检查数据的代码。我有一个ArrayList of CRM对象"actionsList“(在另一个类中创建)。在这里,我检查这些对象的不同条件。满足我必须添加到ArrayList "remarksList“中的条件的对象。问题是如何创建一个方法setRemarkObject()来同时将所有数据设置为remarkObject?不要每次写:
remarkObject.setRemark(checkString);
remarkObject.setNumber(crm.getNumber());
remarkObject.setDealer(crm.getDealer());
remarkObject.setName(crm.getName());..。
现在正确了吗?
import java.util.ArrayList;
public class Conditions {
static ArrayList<CRM> remarksList = new ArrayList<CRM>();
public ArrayList<CRM> conditionsChecking() {
for (CRM crm : App.actionsList) {
CRM remarkObject = new CRM();
remarkObject.setNumber(crm.getNumber());
remarkObject.setDealer(crm.getDealer());
remarkObject.setName(crm.getName());
remarkObject.setGroup(crm.getGroup());
remarkObject.setClientStatus(crm.getClientStatus());
remarkObject.setEntity(crm.getEntity());
remarkObject.setTypeOfContact(crm.getTypeOfContact());
remarkObject.setTypeOfFirstContact(crm.getTypeOfFirstContact());
remarkObject.setSourceOfFirstContact(crm
.getSourceOfFirstContact());
remarkObject.setOfferType(crm.getOfferType());
remarkObject.setEventDate(crm.getEventDate());
remarkObject.setBrand(crm.getBrand());
remarkObject.setCarClass(crm.getCarClass());
remarkObject.setModel(crm.getModel());
remarkObject.setCarCode(crm.getCarCode());
remarkObject.setWeek(crm.getWeek());
remarkObject.setMonth(crm.getMonth());
remarkObject.setYear(crm.getYear());
remarkObject.setAmmount(crm.getAmmount());
remarkObject.setSalesman(crm.getSalesman());
remarkObject.setPhone(crm.getPhone());
remarkObject.setEmail(crm.getEmail());
remarkObject.setAddress(crm.getAdress());
remarkObject.setCreationDate(crm.getCreationDate());
remarkObject.setCreationTime(crm.getCreationTime());
remarkObject.setModificationDate(crm.getModificationDate());
remarkObject.setModificationTime(crm.getModificationTime());
remarkObject.setBackdating(crm.getBackdating());
if ((crm.getClientStatus().equals("Yes")) && ((crm.getAdress().isEmpty()))){
crm.setRemark("Client's address is empty");
remarksList.add(remarkObject);
}
else if ((crm.getClientStatus().equals("Yes")) && (crm.getPhone().isEmpty())){
crm.setRemark( "Phone field is empty");
remarksList.add(remarkObject);
}
///....
else
crm.setRemark("Nothing wrong");
/// not adding to remarksLis
}
return remarksList;
}
}发布于 2014-08-15 08:07:32
您似乎一遍又一遍地做着相同的事情,添加了一个字符串,该字符串声明字段是否为空。那么,为什么不将设置器移动一个街区,在for循环之外呢?
static ArrayList<CRM> remarksList = new ArrayList<CRM>();
public ArrayList<CRM> conditionsChecking() {
for (CRM crm : App.actionsList) {
CRM remarkObject = new CRM();
remarkObject.setNumber(crm.getNumber());
remarkObject.setDealer(crm.getDealer());
remarkObject.setName(crm.getName());
remarkObject.setGroup(crm.getGroup());
//etcetera, etcetera, all setters, except remark
if ((crm.getClientStatus().equals("Yes")) && ((crm.getAdress().isEmpty())))
crm.setRemark("Client's address is empty");
else if ((crm.getClientStatus().equals("Yes")) && (crm.getPhone().isEmpty()))
crm.setRemark( "Phone field is empty");
// etc, etc
else
remarksList.add(remarkObject);
}
return remarksList;
}通常,对于setter和getters,还可以使用构造函数:
public CRM(String number, String dealer, String name, ...) {
this.number = number;
//...etc
}或者是建筑工人
public CRM() {}
public CRM setNumber(String number) {
this.number = number;
return this;
}
public CRM setDealer(String dealer) {
this.dealer = dealer;
return this;
}
//and use it like this
CRM crm = new CRM().setNumber("123").setDealer("dealer"); //et cetera发布于 2014-08-15 08:13:04
据我所知,您正在将crm对象复制到每个if- remarkObject语句中。为什么不在所有if语句之前复制它,并且只在if- set语句中设置备注(CheckString)?然后,可以在所有这些语句之后将其添加到remarkList中。您可以使用CRM构造函数(即。CRM( crm )或通过克隆对象:How do I copy an object in Java?
此外,您正在检查每个if语句中的crm.getClientStatus().equals(“是”)--为什么不开始检查一次呢?
https://stackoverflow.com/questions/25322852
复制相似问题