在飞行中比较两个java对象(数据类型未知)

时间:2010-12-31 10:48:56

标签: java compare equals oop

我需要比较不同的数据对象。

任何人都可以告诉我我该怎么做。我不知道我之前会得到什么数据类型。如果我需要使用apache commons中的任何util,那么请参考它。

目前我正在使用.equals()来比较对象的相等性。当我比较两个字符串的质量时它工作正常。如果我正在比较java.sql.date数据类型,那么它显示不相等,即使它们都包含相同的值。

任何人都可以就此提出建议。

谢谢,
纳伦德拉

2 个答案:

答案 0 :(得分:1)

它完全取决于您调用equals()的对象的equals()方法实现,

答案 1 :(得分:0)

您可能知道,equals()方法的目的是比较对象值,而不是使用==!=运算符进行参考比较。

在java.sql.Date对象的示例中,日期可能不相等,因为它们表示的时间的某些部分是不同的 - 例如毫秒值 - 由于准确性水平。

从本质上讲,它完全取决于每个对象上equals()的实现;我还要强调,您可能想澄清您确切定义的"等于"表示 - 例如在运行时相同的类型或包含对象的某些反射所描述的相同公共字段名称 - 然后从那里开始工作。