Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que compila?

 Object c = new Carro();
 boolean b1 = c instanceof Carro; // true
 boolean b2 = c instanceof Moto; // false

Acho que fechei sem querer o outro tópico como resolvido.

Bom, minha dúvida é porque o código acima compila e o seguinte não?

String s = "a";
boolean b  = s instanceof java.util.List; // não compila
2 respostas
solução!

Boa noite Anderson, ele não compila porque sabe que no segundo exemplo nunca poderá ser true, pois nunca teremos um relação entre String e List, já no caso acima, ele compila por "pode ser que seja.."

Agora acho que entendi. É a mesma regra do "Cast". Quando existe uma relação entre os objetos ele compila, mesmo podendo ser false. Correto?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software