Gostaria de fazer um instanceof para um determinado tipo de List…
Como eu posso fazer isso?
Poderia ser algo tipo
(element instanceof List) //isso não funciona
abraço
Gostaria de fazer um instanceof para um determinado tipo de List…
Como eu posso fazer isso?
Poderia ser algo tipo
(element instanceof List) //isso não funciona
abraço
Ixe… eu acho que não da para fazer isso por que isso ao certo é:
if(List.class.isInstance(element))
O que voce pode fazer é
if(element instanceof List){
if(list.get(0) instanceof TipodeObjeto){
O que você escreveu não é muito claro.
A) Você quer saber se um dado elemento da lista é String ou Integer?
Se sim, isso é fácil. Pegue o elemento da lista (via método get, iterator, ou alguma outra forma qualquer) e faça o teste do instanceof.
B) Você quer usar algo parecido com instanceof para diferenciar List<String> de List<Integer>?
Se sim, sinto muito isso não é possível atualmente. Você tem que bolar alguma gambiarra para contornar este problema (é o que se faz atualmente). Os tipos genéricos são apagados pelo compilador (isso é chamado de type-erasure), e a JVM não conhece eles em tempo de execução. Esse problema é bem conhecido e a solução dele (chamado de reificação) foi esperado para o Java 7, mas provavelmente vai acabar sendo adiado para o Java 8, ou para nunca.
Isso por exemplo é uma gambiarra
if(element instanceof List){
if(((List<?>)element).get(0) instanceof TipodeObjeto){
//trabalha com a lista List<TipodeObjeto> aqui