如何将null参数从本机代码传递给Java方法

时间:2014-03-26 17:47:36

标签: java java-native-interface

我目前正在尝试使用从我们的本机代码调用的Java记录器调试我们遇到的问题。

/* convert C to Java String */
java_string = (*env)->NewStringUTF(env, string);

/* call log method on logger instance */
(*env)->CallVoidMethod(env, logger, log_method_id, java_string);

查看Java代码我可以看到,如果java_string错误地为null,这可能会导致我们出现问题。我想暂时破解上面的代码来返回一个Java null来比较我们在字段中看到的结果失败。如何使java_string成为Java null?

我尝试过以下方法: -

/* convert C to Java String */
java_string = NULL;

/* call log method on logger instance */
(*env)->CallVoidMethod(env, logger, log_method_id, java_string); 

但这似乎导致字符串“null”被发送到Java方法。

为了清楚起见,我无意故意将null传递给这个方法,我只想测试结果NullPointerException会发生什么,因为我们从C调用Java代码。

0 个答案:

没有答案