2010-02-27 8 views

Respuesta

26

Dado que los objetos en código Java y C en realidad utilizar el mismas posiciones de memoria (el objeto se pasa al código nativo es la misma referencia de memoria en ambos mundos), un simple

if (someJObject == NULL) {} 

en el código C debe estar muy bien supongo. Yo no lo he probado, aunque :-)

+3

He probado esto. Funciona. Un objeto Java 'nulo' (como un proyecto) == NULL en C++. –

+0

Vea también http://java.sun.com/docs/books/jni/html/design.html – tmandry

+1

Silly Oracle. Esa dirección ya no es válida. Por ahora, esta dirección IP de Sun funciona para mí: http://192.9.162.55/docs/books/jni/html/design.html –

14

comentario de Stewori merece ser una respuesta, así que aquí está:

(*env)->IsSameObject(env, someJObject, NULL) 

creo que esta prueba tiene éxito donde la comparación del valor falla cuando el tipo de referencia es JNIWeakGlobalRefType , frente a una ref local o global

Cuestiones relacionadas