java - 如何使用 Java 和 JNI 修改传递给 C++ 例程的 jstring 的值?

标签 java java-native-interface

我可以使用 JNI 函数调用将字符串从 Java 传递到我的 C++ 例程并在 C++ 例程中修改它的值吗?

到目前为止,我已经看到了返回 jstring 的示例,但我不想这样做。我知道的另一个选项是在 C++ 中获取字符串变量的 ID 并设置它的值。

目前,我正在使用如下功能:

JNIEXPORT void JNICALL Java_myexample_ChangeString
(JNIEnv *, jobject obj, jstring strJava) 

我想更改 strJava 的值。所以,本质上我要问的是 Java 是否可以通过引用传递变量而不仅仅是通过值。

谢谢。

最佳答案

Java 字符串在设计上是不可变的,您无法更改它们,即使使用 JNI 也是如此。

关于java - 如何使用 Java 和 JNI 修改传递给 C++ 例程的 jstring 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7356787/

相关文章:

java - 如何从 jni C++ 函数返回一个 vector<Point>?

android - java.lang.UnsatisfiedLinkError : dlopen failed: could not load library "libcrypto.so.1.0.0" needed by "libPrivateSsl.so"; 错误

Android Assets 、C、JNI

javax.xml.soap.SOAPException :unable to find namespace for prefix: wsse HEADER Security

java - 为什么这个 Java 正则表达式会失败?

java - 通过 Web 应用程序管理 10,000 个用户更新数据库

java-native-interface - 在 JNI 中清理新对象数组的正确方法

java - 我和大O搞混了

java - Spring MVC中init binder的目的是什么

java - 如何避免在 Java 和 native C++ 代码之间复制数据