Findbugs SIO_SUPERFLUOUS_INSTANCEOF - PullRequest
       5

Findbugs SIO_SUPERFLUOUS_INSTANCEOF

0 голосов
/ 19 апреля 2011

В моем отчете о найденных ошибках у меня есть ошибка SIO_SUPERFLUOUS_INSTANCEOF в следующем разделе кода

/** Allow Comparison based on User-Labels */
public int compareTo(AbstractListItem o) {
    if ( !( o instanceof AbstractListItem ) ) {
        // Correctness - Unnecessary type check done using instanceof operator
        // : Method com.x.y.gui.topology.TopologyListNode.compareTo (AbstractListItem) 
        // does an unnecessary type check using instanceof operator when it 
        // can be determined statically
    return -1;
}

Как правильно определить тип статически?

Ответы [ 2 ]

4 голосов
/ 19 апреля 2011

public int compareTo(AbstractListItem o) - o равно и AbstractListItem, вам не нужно проверять.

Если у вас было public int compareTo(Object o) , тогда instanceof потребуется и не выдаст предупреждение.

2 голосов
/ 19 апреля 2011

В вашем коде тип объекта o уже статически определен как AbstractListItem, и поэтому instanceof не нужен. Findbugs сообщили об этом как о предупреждении, потому что это может быть признаком ошибки, например, то, что вы хотели проверить, было подтипом AbstractListItem, но вы по ошибке набрали AbstractListItem.

...