Dúvida em Collection

3 respostas
D

Bom dia pessoal!!! :slight_smile:

Tipo, estou tendo uma dúvida com relação à resposta dada pelo simulador. A questão é essa:

import java.util.*;

public class MapTest {

publis static void main(sTring[] args) {

Object obj = new LinkedHashMap();
if(obj instanceof Collection)
	System.out.println("For");
if(obj instanceof Map)
	System.out.println("A Few");
if(obj instanceof LinkedList)
	System.out.println("Dollars More");
if(obj instanceof HashMap)
	System.out.println("Good Men");

}
}

e a resposta é essa:

A Few Good Men

Só não entendi o porquê da variável de ref obj continuar a ser analisada depois que entra dentro do if de Map. Pra mim, só imprimiria “A Few”.

Alguém poderia me ajudar com essa dúvida?

Obrigadgo

donatinho 8O

3 Respostas

J
import java.util.*;
public class MapTest {
   public static void main(sTring[] args) {
      Object obj = new LinkedHashMap();

      if(obj instanceof Collection)
         System.out.println("For");

      if(obj instanceof Map)
         System.out.println("A Few");

      if(obj instanceof LinkedList)
         System.out.println("Dollars More");

      if(obj instanceof HashMap)
         System.out.println("Good Men");
   }
}

Veja que não tem else, então ele vai passar por todos os if's, não tem nada pra fazer ele parar, e um LinkedHashMap estende HashMap e implementa Map, então vai entrar no 2º e 4º if.

Pra ele parar de avaliar seria isso:

import java.util.*;
public class MapTest {
   public static void main(sTring[] args) {
      Object obj = new LinkedHashMap();

      if(obj instanceof Collection)
         System.out.println("For");
      else if(obj instanceof Map)
         System.out.println("A Few");
      else if(obj instanceof LinkedList)
         System.out.println("Dollars More");
      else if(obj instanceof HashMap)
         System.out.println("Good Men");
   }
}

Nesse caso será impresso só "A Few".

D

Putssssssssssssssssssssssssssss

esqueci deste detalhe!!!

coisas simples que não consegui enxergar, espero que na hora da prova isso não ocorra :slight_smile:

Valeu cara!

donatinho

J

Fica esperto com isso que os caras da Sun são sacanas… :evil:

:wink:

Criado 6 de setembro de 2006
Ultima resposta 6 de set. de 2006
Respostas 3
Participantes 2