java - Java中如何比较两个相同对象的数据

标签 java gwt

我有课

            MyData 

及其对象

             myData 

在 MyData 类中..有多个字段

喜欢

           int id   

           String  name 

           String desc 

等等..

现在我有两个此类的对象..

是否可以检查这两个对象的数据是否相同,例如两个对象具有相同的 Id ,相同的名称,相同的描述...而不检查该对象的每个字段..(即没有检查每个对象的 id,name,desc)因为这个对象有几十个字段。

我正在使用 JAVA 和 GWT

我遇到的一些实现..不确定这是否可能。有效

    private static String oldSequence = "";

    boolean changed(TestSequence sequence) {
        String newSequence = serializeToString(sequence);
        boolean changed = !newSequence.equals(oldSequence);
        oldSequence = newSequence;
        return changed;


    }

    private static byte[] serialize(Object obj) throws IOException {
        ByteArrayOutputStream b = new ByteArrayOutputStream();
        ObjectOutputStream o = new ObjectOutputStream(b);
        o.writeObject(obj);
        return b.toByteArray();
    }

    private static String serializeToString(Object obj) {
        try {
            return new String(serialize(obj));
        } catch (Exception ex) {
            return "" + ex;
        }
    }

谢谢

最佳答案

您应该重写hashCode()equals() 方法。您可以从 IDE 生成它们。

 @Override
public boolean equals(Object o) {
    if (this == o) return true;
    if (!(o instanceof MyData)) return false;

    MyData myData = (MyData) o;

    if (id != myData.id) return false;
    if (!desc.equals(myData.desc)) return false;
    if (!name.equals(myData.name)) return false;

    return true;
}

@Override
public int hashCode() {
    int result = id;
    result = 31 * result + name.hashCode();
    result = 31 * result + desc.hashCode();
    return result;
}

现在您可以比较对象了。就是这样。

关于java - Java中如何比较两个相同对象的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20375762/

相关文章:

java - Google App Engine 数据存储远程集成

java - Android 的 AudioTrack MODE_STATIC 重放问题

java - 从 Singleton 触发 GWT SimpleEventBus 事件时出现 Nullpointer [Umbrella]Exception

javascript - 如何通过 javascript/html5 播放 wav 音频字节数组?

java - 使用 GlobalSign DSS AATL 证书进行 iText7 pdf 签名显示 Adob​​e Reader 中的信任链已损坏

java - 修改 void 函数的输入参数,然后读取

在 UIBinder 中具有子元素配置的 gwt 自定义小部件(如 CustomButton)

java - GWT 序列化 - 类没有可实例化的子类型

java - 获取剪贴板粘贴缓冲区

java - 计算抛出的异常