Implementar um Arrays.asList onde o retorno é diferente do argumento

1 resposta
fiaux

Gostaria de saber se existe alguma API ou se é possível eu fazer, pois, comecei a ficar com dúvidas.

Sabemos que existe o Arrays.asList que retorna uma lista do mesmo tipo do array de entrada, ou seja, um asList de um String[] retorna uma List. Eu preciso de um asList que me retorne um tipo diferente, porém, passado como parâmetro.

Por exemplo: transformar um String[] em List, ou List ou até mesmo List.

Isso me seria muito útil, pois, as vezes envio arrays montados em Javascript para o servidor que os recebe como String[]. As vezes são sequências de ids, ou sequências de enums.

Fiquei pensando nisso, pois, implementei um método util da vida para transformar para List. Mas me apareceu outro caso. Dessa maneira teria que implementar um pra cada caso.

Alguma idéia? Ou não tem jeito mesmo, tô falando bobagem impossível?

1 Resposta

Vini_Fernandes

Cara, um meio de voce contornar esse conflito é trabalha sempre com a classe no topo da arvore de heraça, veja um exemplo: suponha que vc tenha o seguinte array de strings e interios String [] strings = {“vinicius”, “marcelo”}; Integer [] inteiros = {123, 432, 111}; Aqui esta a sua dificuldade, pois para cobrir suas necessidades voce poderia ter definido ambos os arrays como Object[], sendo assim: Object [] strings = {“vinicius”, “marcelo”}; Object [] inteiros = {123, 432, 111};

Lis<Object> listaDeStrings = Arrays.asList(strings);
Lis<Object> listaDeInteiros = Arrays.asList(inteiros);

Depois voce utiliza os elementos de ambas as listas conforme seu interesse, por exemplo:

String minhaString = listaDeStrings.get(12).toString();
Inteiro meuInteiro  = Integer.valueOf(listaDeInteiros.get(2));

Dessa modo voce nao tem que criar um novo metodo asList().
Espero ter ajudado.

Criado 10 de abril de 2009
Ultima resposta 10 de abr. de 2009
Respostas 1
Participantes 2