Что делать с пустыми полями в compare ()? - PullRequest
21 голосов
/ 24 сентября 2008

В Java я использую класс, в котором некоторые поля могут быть null. Например:

class Foo {
    String bar;
    //....
}

Я хочу написать BarComparator для этого класса,

    private static class BarComparator
            implements Comparator<Foo> {
        public int compare( final Foo o1, final Foo o2 )
        {
            // Implementation goes here
        }
    }

Существует ли стандартный способ справиться с тем, что любой из o1, o2, o1.bar, o2.bar может быть null, без написания большого количества вложенных if ... else * * 1015

Ура!

Ответы [ 11 ]

0 голосов
/ 24 сентября 2008

Я думаю, что ранние операторы возврата были бы другой альтернативой многим ifs

, например

if(o1==null) return x;
if(o2==null) return x;
if(o1.getBar()==null) return x;
if(o2.getBar()==null) return x;

// No null checks needed from this point.
...