需要把JAVA中的String 数组传递到本地代码中,采用如下方法,不知道如何将jobject对象向jstring对象转换。
JAVA中的定义:
String[] info = {"INFO_00", "INFO_01", "INFO_02", "INFO_03"};
PrintArrays(info);
//本地代码:
JNIEXPORT void JNICALL Java_cn_itcast_TestArray_PrintArrays(JNIEnv *env, jclass clazz, jobjectArray array)
{
int size = (*env).GetArrayLength(array); //获得数组长度,OK
for (int i = 0; i < size; i++)
{
jobject object = ((*env).GetObjectArrayElement( array, i)); //获得jobject对象
//jstring string=?? 此处不知道该如何将jobject对象向jstring对象转换
const char * chars = (*env).GetStringUTFChars( string, 0);
printf("%s n", chars);
.....
}
}谢谢!
JAVA中的定义:
String[] info = {"INFO_00", "INFO_01", "INFO_02", "INFO_03"};
PrintArrays(info);
//本地代码:
JNIEXPORT void JNICALL Java_cn_itcast_TestArray_PrintArrays(JNIEnv *env, jclass clazz, jobjectArray array)
{
int size = (*env).GetArrayLength(array); //获得数组长度,OK
for (int i = 0; i < size; i++)
{
jobject object = ((*env).GetObjectArrayElement( array, i)); //获得jobject对象
//jstring string=?? 此处不知道该如何将jobject对象向jstring对象转换
const char * chars = (*env).GetStringUTFChars( string, 0);
printf("%s n", chars);
.....
}
}谢谢!
解决方案 »
- 刚开始看书,其中遇到的一些不懂的地方
- java web start讨论
- 不解的几个问题
- 找不到包啊!!求救啊!
- Linux下连接数据库成功后,认证阶段发生异常:java.sql.SQLException: Server configuration denies access to data source
- IBM 的Visual Age for Java 到底有没有动态提示功能?如何设置?在IDE环境中应该可以使用的!
- 随机函数问题
- 我都快急死了,不只是什么问题。大家帮帮我
- 请问,我保存记录时,我想弹出窗口,提示成功或不成,该怎么处理?
- java 在 98/me 的输入法提示如何去除?
- 【请大家讨论】火车站票务管理系统的业务逻辑。。。
- jdic的问题,大家帮下!
楼主【changleqy】截止到2008-06-22 18:19:11的历史汇总数据(不包括此帖):
发帖数:30 发帖分:630
结贴数:24 结贴分:500
结贴率:80.00 % 结分率:79.37 %
楼主加油
指针对类型要求并不严格
typeof jobject jstring
....
jstring string = ((*env).GetObjectArrayElement( array, i));
const char * chars = (*env).GetStringUTFChars( string, 0);
printf("%s n", chars);
(*env).ReleaseStringUTFChars( string, chars);
....出错提示:
d:\vc\testarray\test.cpp(11) : error C2440: 'initializing' : cannot convert from 'class _jobject *' to 'class _jstring *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
执行 cl.exe 时出错.