Tenho um objeto x que pode ser qualquer array de primitivos (int[], long[], etc.)
Como transformar x numa collection rapidamente?
Tenho um objeto x que pode ser qualquer array de primitivos (int[], long[], etc.)
Como transformar x numa collection rapidamente?
Olá Sérgio. Acho que não é isso que você quer né?
int[][] multi = new int[][] {{1, 2}, {1, 2, 3}, {1, 2, 3, 4}};
List<List<Integer>> multiList = new ArrayList<List<Integer>>(multi.length);
for (int[] array : multi) {
List<Integer> list = new ArrayList<Integer>(array.length);
for (int i : array) {
list.add(i);
}
multiList.add(list);
}
fonte: http://forum.java.sun.com/thread.jspa?threadID=5187253
Arrays.asList
Mas eu preciso saber se eu estou realmente passando um array.
isArray() the Class resolve a primeira pergunta.
Mas eu não quero passar Object[] apenas primitivo[].
Como saber se tenho um array de primitivos? Um if para cada ???
Não, quero algo dinamico que aceito qualquer primitivo[].
Paulão, Arrays.asList não funciona com arrays de tipos primitivos - não é feito nenhum autoboxing nesse caso.
Acho que é algo como
Class<?> klass = int[].class;
boolean isAnArrayOfPrimitives = klass.isArray() && klass.getComponentType().isPrimitive();
Paulão, Arrays.asList não funciona com arrays de tipos primitivos - não é feito nenhum autoboxing nesse caso.
ate funciona, mas vai devolver uma array de tamanho 1 ja que ele aceita varargs, hehehehe :).
eh, mas nao serve pro Sergio.
getComponentType eu não conhecia… legal…
E tendo um Object x que é um array de primitivos, o que eu faço? 
Object x = new int[200];
Class<?> klass = x.getClass();
boolean isAnArrayOfPrimitives = klass.isArray() && klass.getComponentType().isPrimitive();
Isso me fala se o que eu tenho é um array de primitivos.
De posse de um array de primitivos, como eu transformo em Collection?
Arrays.asList não funciona. Eu tb achei que funcionasse…
Não tem jeito, irmão, acho que você vai ter de fazer um loop (argh). Que tal um pouco de copy & paste & modify?
O loop não é o problema, mas o IF para cada primitivo para poder fazer o cast. Tá muito feio pra ser verdade!
Mas acho que é assim mesmo. Paciência 
Beleza. Um belo caso para uma classe JavaUtil.java.
E esse aqui: http://www.guj.com.br/posts/list/83129.java
Um pouco mais difícil… 
Alguma idéia?