Olá…
Tenho um método que recebe um List como parametro…
Só que em determinados casos, vem um List ou seja uma listagem de clientes
e em outros casos vem um List<Object[]> ou seja uma listagem em que cada posição vem um array de objetos
Como faço para diferenciar quando é um e quando é outro?
Sei se que fosse um Objeto somente ficaria mais ou menos assim
if (obj instanceof Cliente){ … else …
Porém quando é um List de Objetos , como faz?
A idéia de generics é não diferenciar.
Você pode criar uma interface e fazer duas classes que implementam e um método que faz o que voce faria nesse seu método generic.
Aproveitando pra escrever:
Invés de:
class Main{
void foreach(List<Object> as){
if(as.get(0) instanceof Cliente)
//faz coisas com cliente
if(as.get(0) instanceof Array)
//faz coisas com array de Object
}
}
faça:
interface A {
void a();
}
class Cliente implements A{
void a(){
//Faz coisas com cliente
}
}
class Grupo implements A {
void a(){
//Faz coisas com o array de object
}
}
class Main{
void foreach(List<A> as){
for(A a: as) a.a();
}
}
Note que você poderia criar novas classes sem ter que alterar seu if dessa maneira.
E esse é um exemplo de poliformismo.
Obrigado… seguindo sua idéia consegui resolver…Obrigado novamente…