2012-03-30 7 views
13

¿Cuál es la sintaxis correcta del identificador FindClass para cargar subclases? Por ejemplo:JNI ¿Formato de FindClass para las subclases?

package a.b.c; 

class Foo { 
    class Bar { 
    ... 
    } 
} 

Para obtener Foo que puedo hacer (*env)->FindClass(env, "https://stackoverflow.com/a/b/c/Foo"), pero tratando de conseguir a través Bar(*env)->FindClass(env, "a/b/c/Foo/Bar") arroja una ClassNotFoundException. ¿Hay una sintaxis diferente para representar subclases?

Respuesta

34

No importa, la herramienta javap ha resultado útil aquí. La sintaxis correcta es:

a/b/c/Foo$Bar

+1

Ese es un principio general. Siempre debe usar 'javap', en lugar de tratar de resolverlo. El método JNI y las firmas de tipo son otro ejemplo donde 'javap' conoce la respuesta correcta. – EJP

+0

Excepto en este caso, estoy tratando de hacerlo al transformar código arbitrario, por lo que lanzar 'javap' y tratar de hacer coincidir los resultados no funcionaría exactamente. –

+0

No entiendo eso. ¿Hay más en tu pregunta de la que preguntaste? – EJP

Cuestiones relacionadas