我需要比较两个Pojo对象并显示结果。
我的情况是将Db值与输入文件进行比较。为此,我创建了一个POJO类。
POJO类
sys.exit
读取数据库中值的方法
public class BuySellTO
{
String fundFamily;
public String getFundFamily() {
return fundFamily;
}
public void setFundFamily(String fundFamily) {
this.fundFamily = fundFamily;
}
在输入文件中读取值的方法
public BuySellTO readDB(String x) throws Exception {
try {
String sqlQuery;
BuySellTO bsDb = new BuySellTO();
if(x.isEmpty() || StringUtils.isBlank(x))
sqlQuery = "----sql query----";
else
sqlQuery = "----sql query----";
ResultSet result = sqlDb.executeSqlQuery(sqlQuery);
while (result.next()) {
bsDb.setFundFamily(result.getString(1).trim());
}
return bsDb;
} catch (Exception e) {
e.printStackTrace();
throw e;
}
在这里,我将有n个字段。所以我需要一个一个地比较并打印结果。
我可以使用以下方法直接进行比较。
比较
public BuySellTO readFundDetailsInFile(String a, String b) throws Exception
{
try
{
BuySellTO inputTO = new BuySellTO();
String[] data = readBuySellFile(a, b);
if (data != null) {
inputTO.setFundFamily(data[0].trim());
}
else
System.out.println("Record does not exist in the File to store in Array..!!!");
return inputTO;
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
}
请提供您的想法来分别比较每个对象。
答案 0 :(得分:0)
您尝试使用equals方法吗?
您需要在BySellTO类中覆盖它们。
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof BuySellTO)) return false;
BuySellTO buySellTO = (BuySellTO) o;
return fundFamily != null ? fundFamily.equals(buySellTO.fundFamily) : buySellTO.fundFamily == null;
}
@Override
public int hashCode() {
return fundFamily != null ? fundFamily.hashCode() : 0;
}
然后
public static boolean comparePOJO(Object obj1, Object obj2) {
return obj1.equals(obj2);
}