SóProvas


ID
3433579
Banca
VUNESP
Órgão
Prefeitura de Campinas - SP
Ano
2019
Provas
Disciplina
Programação
Assuntos

Considere o código Java 9 a seguir:


class Main

   { public static void main(

         String[] args) { String x = “10”;

         if (x instanceof Integer){

           System.out.println(“SIM”);

         }  else  {

            System.out.println(“NÃO”);

         }

     }

}


Ao ser executado, esse código produzirá

Alternativas
Comentários
  • Gabarito: E

    instanceof pergunta "é um", e como String não é um Integer, é lançado um erro.

  • Ao compilar o código obtive o seguinte erro:

    incompatible types: String cannot be converted to Integer if (x instanceof Integer)

    ^ 1 error

  • Java é lixo puro

  • Isto acontece porque o compilador sabe, em tempo de compilação, que x não é Integer. Tem uma discussão sobre isso em https://stackoverflow.com/questions/31558052/compile-time-check-using-instanceof

  • O instanceof é usado para classes filhas. Não existe a possibilidade de uma String ser um objeto do tipo Integer, e o compilador é experto o suficiente para verificar isso.

    Daria certo se fosse: Object x = “10”. Porque Object pode ser qualquer coisa