Verificar se um objeto implementa determinada interface [RESOLVIDO]

No método abaixo, estou usando instanceof, mas não funciona.
Alguém sabe me dizer como verificar se um objeto implementa determinada interface??

	private static void fazerAnimalBrincar(List lista) {
		Iterator it=lista.iterator();
		while(it.hasNext()){
			if(it.next() instanceof Estimacao) {
				Estimacao e=(Estimacao) it.next();
				e.brincar();
			}
		}
	}

Provável que você esteja errando em algo.
Como só temos o método, não podemos dizer nada.
Mas, veja aqui uma leve explicação.

[quote=drsmachado]Provável que você esteja errando em algo.
Como só temos o método, não podemos dizer nada.
Mas, veja aqui uma leve explicação.[/quote]

O código que eu postei compila, mas não funciona…

Não funciona é uma expressão extremamente abrangente.
O operador instanceof está habilitado a retornar uma verificação como true (verdadeiro) se:
a instanceof A:

  • O operando a é um objeto da classe A;
  • O operando a é um objeto de uma subclasse de A;
  • O operando a é um objeto de uma classe que implementa A;

O problema é este trecho:

if(it.next() instanceof Estimacao) {  
            Estimacao e=(Estimacao) it.next(); 
            //...
}

Você chama it.next() 2 vezes seguidas. Quando você invoca next() o iterador avança para o próximo elemento. Sendo assim, o objeto que você tenta converter para Estimacao não é o mesmo objeto sobre o qual você aplicou o teste.

Na mosca rmendes08!!! Muito obrigado!