比较Java中的两个POJO对象并显示差异

时间:2018-07-31 07:31:08

标签: java arrays object pojo

我需要比较两个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;
    }
}

请提供您的想法来分别比较每个对象。

1 个答案:

答案 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);
}