Java Convertir matriz primitiva desconocida en matriz de objetos

He estado tratando de crear mi propia biblioteca para serializar y deserializar tipos primitivos de una clase a xml y de xml a una instancia de clase usando la reflexión para examinar los patrones de nombres de métodos y los tipos de retorno de métodos.

Hasta ahora he podido hacer esto con todos los tipos primitivos básicos, pero me he quedado atascado en la serialización de una matriz de las mismas primitivas.

Por ejemplo, invoco el método de clase para obtener la matriz de primitivas:

method.invoke(clazz, (Object[])null);

Este método devolverá solo una matriz primitiva, int[], double[], float[], char[]etc. aunque no sabemos cuál será.

He intentado usar un genérico como

T t = (T)method.invoke(clazz, (Object[])null);
T[] t = (T[])method.invoke(clazz, (Object[])null);

Pero no me deja lanzar desde la matriz primitiva a un objeto.

Y no puede usar Array.newInstanceasumiendo que no sabemos el tipo.

¿Hay alguna manera de que pueda convertir esta matriz de primitivas para decir una matriz de objetos de manera genérica?

De manera genérica, significa sin necesidad de saber o verificar cuál es el tipo de matriz. ¿O debería pasar por todos los tipos primitivos y manejarlos por separado?

Puedo hacer esto en ambos sentidos, la única razón por la que quiero hacer esto de manera genérica es reducir el código redundante.

Gracias por adelantado.

Respuesta 1

Puede usar la clase de utilidad Array

public static Object[] toObjectArray(Object array) {
    int length = Array.getLength(array);
    Object[] ret = new Object[length];
    for(int i = 0; i < length; i++)
        ret[i] = Array.get(array, i);
    return ret;
}
Respuesta: 2

¿ Java.lang.reflect.Array.get () hace lo que quieres?

Respuesta: 3

Tengo una matriz 2D que representa un tablero de tres en raya. Y la caja vacía es solo ""; Mi tablero de juego actual está guardado en ar1, que es una matriz de cadenas 2d. Quiero hacer una gran variedad de tableros de juego que es una matriz ...

Tengo dificultades para decidir cómo nombrar una variable de Archivo y una variable de Cadena, que describen el mismo directorio. Básicamente tengo una cadena que describe la ubicación de un directorio ...

Posible duplicado: Ejemplo del programa JMenubar en JInternalFrame cuando maximizo el JInternalFrame estoy trabajando en una aplicación Swing, y soy nuevo con los diseños, quiero mi JFrame y el ...

¿Por qué afirmar en Java una palabra clave y no un método? La afirmación del método podría verse así: aserción pública de vacío estático (condición booleana) {if (! Condition) {throw new AssertionError (); ...