¿Cómo me convierto para escribir SWIGTYPE_p_void en los enlaces de Java generados por SWIG?

Estoy desarrollando algunos enlaces de Java generados por SWIG para una biblioteca de C. La biblioteca contiene funciones que toman parámetros de tipo.void *. En el lado C, estos normalmente se pasarían como un puntero a una matriz de tipofloat oint echar avoid *. En los enlaces Java generados, esto resulta en métodos que toman parámetros de tipoSWIGTYPE_p_void.

¿Cuál es la mejor manera de construir una matriz de flotantes / ints en los enlaces de Java para que puedan pasarse como tipoSWIGTYPE_p_void a estos metodos?

En este momento estoy definiendo una función auxiliar en mi archivo example.i:

void *floata_to_voidp(float f[])
{
    return (void *)f;
}

Y luego en el lado de Java haciendo algo como esto:

float foo[] = new float[2];
SWIGTYPE_p_void av = null;

// do something with foo

av = example.floata_to_voidp(foo);
example.myfunction(av);

Esto parece bastante feo, especialmente porque también necesitaría uninta_to_voidp() etc. en mi archivo de interfaz SWIG para cada conversión de tipo que quiero admitir.

¿Hay alguna manera de hacer esto sin funciones de ayuda y con menos código adicional en el lado de Java para convertir tipos de datos?

ACTUALIZACIÓN (17/6/12): para dar detalles adicionales a la pregunta: lo que estoy tratando de hacer es tomar un conjunto de funciones C, con prototipoint foo(const float *data, int N, const void *argv, float *result) y asignarlos a métodos en el lado de Java donde se puede pasar una matriz de tipo arbitrario comoargv. Tenga en cuenta queargv esconst void * y novoid *.

Respuestas a la pregunta(2)

Su respuesta a la pregunta