Diferenciar um List <E>[RESOLVIDO]

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…