Erro no instanceof do código

Java

23/02/2014

Boa tarde pessoal, estou aprendendo essa parte do java. Na parte inicial, com os operadores de comparação e estou usando o instanceof mas ele está dando erro não sei porque, acho que estou fazendo algo errado... Mas assim, ta ai o código

public class Ex1Primo {

    public static void main(String[] args) {
    
        int dd2 = 12;
        Integer dd = dd2;
        System.out.println(dd instanceof Object);
    
    }

}


Eu tenho um tipo primitivo int, o dd2 e converti ele para um objeto para o instanceof poder comparar, quando coloco na comparação Object ou Integer ele faz a comparação normalmente, compila sem erro e retorna um valor boolenano true mas quando faço dd instanceof Byte ou qualquer outra classe Wrapper ele dá erro direto na compilação. De tipo incompativel, mas não sei é erro meu. Estou querendo que ele retorne o valor false, mas se fizer qualquer alteração, botar uma string e compara com um integer ele da erro

Ex1Primo.java:9: error: inconvertible types
        System.out.println(dd instanceof String);
                           ^
  required: String
  found:    Integer
1 error
Gustavo Medeiros

Gustavo Medeiros

Curtidas 0

Respostas

Diogo Fernandes

Diogo Fernandes

23/02/2014

Está correto em dar erro. Instance of é como se fosse "É UM". Dar erro porque Integer NÃO É UM String.
GOSTEI 0
Gustavo Medeiros

Gustavo Medeiros

23/02/2014

Então instanceof só retorna true? Se for false ele da erro direto na compilação?
GOSTEI 0
Diogo Fernandes

Diogo Fernandes

23/02/2014

Não, acho que você não está sabendo o que é o instance of. Pesquise um pouco sobre ele.
GOSTEI 0
POSTAR