当前位置: 首页 > news >正文

泰安中呼网站建设有限公司 概况苏州吴江做网站

泰安中呼网站建设有限公司 概况,苏州吴江做网站,公众平台网站价格,网站建设五行属什么在JNI中,本地代码(C/C)中修改了Java对象的变量,并且将其传递回Java端,那么Java端会看到变量的修改,尝试以下两种方式进行修改: 添加native方法 data class MyData(var key:Int,var value:String…

在JNI中,本地代码(C/C++)中修改了Java对象的变量,并且将其传递回Java端,那么Java端会看到变量的修改,尝试以下两种方式进行修改:

  1. 添加native方法

    data class MyData(var key:Int,var value:String
    )class TestLib {companion object{init {System.loadLibrary("jnitest")}}external fun modifyData(data:Int)external fun modifyMyData(data:MyData)
    }var data  = 1
    Log.i(TAG,"in = ${data}")
    testLib.modifyData(1)
    Log.i(TAG,"out = ${data}")
    var myData = MyData(1,"Hello")
    Log.i(TAG,"mydata in = ${myData.toString()}")
    testLib.modifyMyData(myData)
    Log.i(TAG,"mydata in = ${myData.toString()}")
    
  2. C++

     extern "C"JNIEXPORT void JNICALLJava_com_test_jnitest_TestLib_modifyData(JNIEnv *env, jobject thiz, jint data) {data = 2;}extern "C"JNIEXPORT void JNICALLJava_com_test_jnitest_TestLib_modifyMyData(JNIEnv *env, jobject thiz, jobject data) {jclass cls = env->GetObjectClass(data);jfieldID fieldKey = env->GetFieldID(cls, "key", "I");// 获取变量的值jint valueKey = env->GetIntField(data, fieldKey);// 修改变量的值valueKey = 2;// 设置变量的新值env->SetIntField(data, fieldKey, valueKey);jfieldID fieldValue = env->GetFieldID(cls, "value", "Ljava/lang/String;");// 创建一个新的字符串const char *newStr = "World";jstring newString = env->NewStringUTF(newStr);// 设置实体类的String变量env->SetObjectField(data, fieldValue, newString);}
    

    日志打印:

     I/MainActivity: in = 1I/MainActivity: out = 1I/MainActivity: mydata in = MyData(key=1, value=Hello)I/MainActivity: mydata in = MyData(key=2, value=World)
    

第一种方法虽然在JNI中将变量修改为2,但是在Java端仍然保持为1,这是因为在JNI中传递的是变量的值的副本,而不是引用。要在JNI中更改Java对象的变量,需要通过第二种传递对象的引用来实现,使用JNI函数获取和设置变量的值,成功地更改Java对象的变量。

http://www.yayakq.cn/news/908432/

相关文章:

  • 苏州做网站公司哪家好wordpress 游戏 模板下载地址
  • 清远住房和城乡建设局网站wordpress 百家号
  • 莆田网站建设创意建筑公司起名大全2021最新版的
  • 阐述企业搭建网站的重要性网站建设2019
  • 在服务器上搭建网站广告创意设计欣赏
  • 网站被降权后怎么办自做网站多少钱
  • 一般做外单的有哪些网站陕西建设厅官网首页
  • 广州建网站比较有名的公司婚纱摄影团购网站模板
  • 茶网站设计素材下载木樨园网站建设
  • 传统设计公司网站建设服装网站目的
  • 汕头有没有做网站golang和php 做网站
  • 快手刷热度推广网站杭州网络推广公司排名
  • 如何自建网站写网页用什么语言
  • 惠州网站建设 熊掌号珠海网站制作外包
  • 北京集团公司注册流程全网优化推广
  • 亦庄建设局网站怎么搭建自己的网站
  • 厦门seo优化seo网站营销推广公司
  • 高端网站建设与制作惠州微网站推广方案
  • 做苗木网站哪家做得好南京建设网站公司哪家好
  • python做网站多少钱建筑工程网站免费
  • 重庆教育建设有限公司网站首页廊坊关键词排名优化
  • 中国住房和城乡建设部网站建造师专题网站策划书
  • 网站快速建设视频网站建设交流会
  • 北京公司的网站建设手机靓号网站建设
  • 中小型网站建设哪家好如何做好一个外贸进网站的编辑
  • 公司网站建设一定要求原图吗网站搭建方案
  • 网站icp备案费用免费可商用素材网站
  • 注册网站用于跳转虚拟货币网站违法医疗网站前置审批
  • 模板建站多少钱网页制作多少钱一个页面
  • 长沙百度网站建设太仓有没有做网站建设的