2013-06-26 59 views
-3

我想实现Comparator比较object1和object2这两个对象是复杂的对象(嵌套的对象)。实现比较器比较两个对象

我的要求是,如果object2中有任何空值并且object1中的对应值为null或非null,那么我的比较器应该返回true,但是如果object2中的值不为null并且对象1中的对应值不同或为null那么它应该返回false。

这些值可能是对象内部的对象或基础对象的内部对象。

你能否建议我应该如何实现compareTo()方法,以便获得我的愿望结果。

+1

问题在哪里?显示一些代码。 – NINCOMPOOP

+1

你期望这里的人会为你写逻辑吗?粘贴你的代码,并显示你已经解决了这个问题并询问具体问题。 – vineet

+0

我在做反思。我被卡住了一点,这是我的错误,我没有发布代码。但是我在做的时候得到了解决方案。它可能需要1小时才能解决问题。谢谢 – user2508111

回答

1

compareTo方法通常不返回true或false 比较器工作: 返回-1如果第一给定的对象是比第二 它返回1,如果该第一给定的对象比第二大小一个 并返回0,如果对象是即使

那会是这样的(考虑到你想基于他们的字符串比较两个对象):

if (a.getString() == null && a.getString() == null) { 
     return 0; //both of them are null: return equal 
    } 
    if (a.getString() == null) { 
     return 1; //first one is null: second is bigger 
    } 
    if (b.getString() == null) { 
     return -1; //second one is null: first is bigger 
    } 
    return a.getString().compareTo(b.getString()); //compare the two strings 
                //inside, with the already 
                //existing method from the 
                //String class 

考虑你没有给任何代码示例,这个代码可以ld符合您的需求

+0

我在做反思。我被卡住了一点,这是我的错误,我没有发布代码。但是我在做的时候得到了解决方案。它可能需要1小时才能解决问题。谢谢 – user2508111