Bom dia pessoal!!!
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
[code]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");
}
}[/code]
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:
[code]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");
}
}[/code]
Nesse caso será impresso só “A Few”.
Putssssssssssssssssssssssssssss
esqueci deste detalhe!!!
coisas simples que não consegui enxergar, espero que na hora da prova isso não ocorra
Valeu cara!
donatinho
Fica esperto com isso que os caras da Sun são sacanas… :evil: