JNI中访问JList的代码

简介: JNI中访问JList的代码

思路就是,这是一个对象,获取其中的函数后,使用for循环调用函数获取其中的数据。


代码如下:

#include <jni.h>
void process_jlist(const JNIEnv *env, const jobject jlist)
{
  if (env == NULL || jlist == NULL)
  {
    return;
  }
  jclass list_cls = env->GetObjectClass(jlist);
  if (list_cls == NULL)
  {
    return;
  }
  jmethodID list_get  = env->GetMethodID(list_cls, "get",  "(I)Ljava/lang/Object;");
  jmethodID list_size = env->GetMethodID(list_cls, "size", "()I");
  int len = static_cast<int>(env->CallIntMethod(jlist, list_size));
  if (len == 0)
  {
     return;
  }
  for (int i=0; i < len; i++)
  {
    jstring element = (jstring)(env->CallObjectMethod(jlist, list_get, i));
    if (element == NULL)
    {
       continue;
    }
    // 注意是否有其他的内存泄露
    env->DeleteLocalRef(element);
  }
  //做点其他事情
}


目录
相关文章
|
10月前
|
设计模式 缓存 算法
14.策略者模式设计思想
策略模式是一种行为型设计模式,用于定义一系列可互换的算法,并使它们可以独立于使用它们的客户端而变化。本文档详细介绍了策略模式的基础概念、原理、结构及应用案例,包括折扣计算、文件排序等实际场景,帮助读者深入理解策略模式的实现和优势。此外,还对比了策略模式与其他设计模式(如状态模式、模板模式)的区别,并提供了相关代码示例。适合初学者和有一定经验的开发者参考。
212 10
14.策略者模式设计思想
|
9月前
|
Java 数据库连接 数据库
从入门到精通---深入剖析Spring DAO
在Java企业级开发中,Spring框架以其强大的功能和灵活性,成为众多开发者的首选。Spring DAO(Data Access Object)作为Spring框架中处理数据访问的重要模块,对JDBC进行了抽象封装,极大地简化了数据访问异常的处理,并能统一管理JDBC事务。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring DAO,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
158 1
|
存储 JSON 安全
使用Go语言编写区块链P2P网络(译)
使用Go语言编写区块链P2P网络(译)
1079 0
使用Go语言编写区块链P2P网络(译)
|
11月前
|
域名解析 网络协议 网络安全
阿里云国际配置DDoS高防(非中国内地)加速线路
阿里云国际配置DDoS高防(非中国内地)加速线路
|
存储 Python
NumPy 教程 之 NumPy 从已有的数组创建数组 1
- 使用`numpy.asarray`从列表、元组等构建数组。 - 参数: `a`(输入), `dtype`(数据类型), `order`(`C`或`F`顺序). - 示例: `np.asarray([1,2,3])` 输出 `[1 2 3]`. 快速简洁地转换数据结构至NumPy数组格式.
87 2
带你读《全景揭秘字符编码》之六:六、字符编码模型(3)
带你读《全景揭秘字符编码》之六:六、字符编码模型(3)
235 0
|
缓存 监控 网络协议