搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
秋刀鱼在做梦
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Android 10.0 通过广播切换APN-在Settings中加入_android10 添加apn
2
汽车知识大全,一篇文章搞定(必看收藏)!
3
git提交和回退_git 回退提交
4
【C++】简单对称加密_c++ 对称加密
5
python表格输出_python输出表格
6
中海油某海上平台轨道巡检机器人解决方案
7
有没有大神帮忙做几道数据结构keshe题,有偿好说
8
IgH详解十、EtherCAT DC(4)主站做参考时钟和从站作参考时钟性能对比_ethercat slave did not sync after
9
python连接MySQL数据库脚本_连接mysql数据库的python服务器脚本应该放在哪里
10
Redis 实现分布式缓存_redis分布式缓存
当前位置:
article
> 正文
JNI 数据类型转换_jboolean转bool
作者:秋刀鱼在做梦 | 2024-08-17 11:32:57
赞
踩
jboolean转bool
Java代码
#include <jni.h>
#include
"com_test_Test.h"
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
//获取字符串
JNIEXPORT
void
JNICALL Java_com_test_Test_sayHello(JNIEnv * env, jobject obj,
jstring s) {
char
* str = (
char
*) (*env)->GetStringUTFChars(env, s,
0
);
printf(
"\n c-string: hello - %s"
, str);
}
//获取,返回int
JNIEXPORT jint JNICALL Java_com_test_Test_add(JNIEnv * env, jobject obj,
jint a, jint b) {
int
i = a;
int
j = b;
printf(
"\n c-int: %d - %d"
, i, j);
char
str[
256
];
sprintf(str,
"%d"
, i + j);
return
(jint) i + j;
}
//获取,返回float
JNIEXPORT jfloat JNICALL Java_com_test_Test_getFloat(JNIEnv * env, jobject obj,
jfloat f) {
float
fl = f;
printf(
"\n c-float: %3f"
, fl);
fl =
200.555
;
return
(jfloat) fl;
}
//获取,返回 double
JNIEXPORT jdouble JNICALL Java_com_test_Test_getDouble(JNIEnv * env,
jobject obj, jdouble dou) {
double
d = dou;
printf(
"\n c-double: %3f"
, d);
d =
800.88
;
return
(jdouble) d;
}
//获取,返回boolean
JNIEXPORT jboolean JNICALL Java_com_test_Test_getBoolean(JNIEnv * env,
jobject obj, jboolean bool) {
unsigned
char
b = bool;
printf(
"\n c-boolean: %lu "
, b);
if
(b) {
printf(
"true"
);
}
else
{
printf(
"false"
);
}
b =
1
;
return
(jboolean) b;
}
//获取,返回 string
JNIEXPORT jstring JNICALL Java_com_test_Test_getString(JNIEnv * env,
jobject obj, jstring s) {
char
* st = (
char
*) (*env)->GetStringUTFChars(env, s,
0
);
printf(
"\n c-string: %s"
, st);
char
* str =
"hello wang wu!"
;
jstring rtn;
rtn = (*env)->NewStringUTF(env, str);
return
rtn;
}
//获取,返回 string []
JNIEXPORT jobjectArray JNICALL Java_com_test_Test_getStringArray(JNIEnv * env,
jobject obj, jobjectArray arr) {
int
len = (*env)->GetArrayLength(env, arr);
printf(
"\n c-stringArray :"
);
int
i =
0
;
for
(i =
0
; i < len; i++) {
jobject obj = (*env)->GetObjectArrayElement(env, arr, i);
jstring str = (jstring) obj;
const
char
* szStr = (*env)->GetStringUTFChars(env, str,
0
);
printf(
" %d-%s "
, i, szStr);
(*env)->ReleaseStringChars(env, str, szStr);
}
//-----返回----
jstring str;
jobjectArray args =
0
;
jsize size =
5
;
char
* sa[] = {
"Hello,"
,
"world!"
,
"zhang"
,
"san"
,
"yuang"
};
int
j =
0
;
jclass objClass = (*env)->FindClass(env,
"java/lang/String"
);
args = (*env)->NewObjectArray(env, size, objClass,
0
);
for
(j =
0
; j < size; j++) {
str = (*env)->NewStringUTF(env, sa[j]);
(*env)->SetObjectArrayElement(env, args, j, str);
}
return
args;
}
-----------------------------------------------------------------
下面是Test.java
package
com.test;
public
class
Test {
private
native
void
sayHello(String str);
private
native
int
add(
int
a,
int
b);
private
native
float
getFloat(
float
f);
private
native
double
getDouble(
double
d);
private
native
boolean
getBoolean(
boolean
b);
private
native
String getString(String str);
private
native
String[] getStringArray(String[] sa);
static
{
System.loadLibrary(
"Test"
);
}
public
static
void
main(String[] args) {
Test test =
new
Test();
test.sayHello(
"zhang san"
);
System.out.println(
"int --> "
+ test.add(
10
,
20
));
System.out.println(
"float --> "
+ test.getFloat((
float
)
20.123
));
System.out.println(
"double --> "
+ test.getDouble(
100.369
));
System.out.println(
"boolean --> "
+ test.getBoolean(
true
));
System.out.println(
"string --> "
+ test.getString(
"wang Wu"
));
String[] ss = {
"hello"
,
"-"
,
"zhang"
,
"san"
};
Object[] obj = test.getStringArray(ss);
System.out.print(
"string[]--> "
);
for
(Object object : obj) {
System.out.print(object +
" "
);
}
}
}
转自
http://dolphin-ygj.iteye.com/blog/519492
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/992652
推荐阅读
article
怎么用
微信
小
程序实现
远程
控制
空调
_
空调
遥控器
小
程序开发
...
怎么用
微信
小
程序实现
远程
控制
空调
呢?本文描述了使用
微信
小
程序调用HTTP接口,实现
控制
空调
,通过不同规格的通断器,来
控制
...
赞
踩
article
python
工具--
mysql2doris
的
datax
json
生成工具...
提供DDL生成
datax
的
json
python
工具--
mysql2doris
的
datax
json
生成工具 ...
赞
踩
article
探索
TensorFlow
:
深度
学习
的
未来...
TensorFlow
是一个用于数值计算
的
开源软件库,其设计灵感来源于神经网络
的
结构。"Tensor"在数学中代表多维数组...
赞
踩
article
go
语言
实战
教程
:
实战
项目
资源导入和
项目
框架
搭建
...
从本节内容开始,我们将利用我们所学习的Iris
框架
的相关知识,进行
实战
项目
开发。
实战
项目
框架
搭建
我们的
实战
项目
是使用Ir...
赞
踩
article
如何
删除
GitHub
中的所有
提交
历史
记录
,但将
代码
保持在当前状态_
git
如何清除
commit
的
记录
,...
前几天自己在做一个测试项目的时候,不小心
提交
了敏感信息,于是希望
删除
那一次的
提交
记录
。经过一番搜索找到了一个方法,但是在...
赞
踩
article
[
数据分析
与
可视化
] 基于
matplotlib
和
plottable
库
绘制
精美
表格
...
plottable
提供了ColumnDefinition类(别名ColDef)来自定义图形
表格
的单个列的样式。name:...
赞
踩
article
Linux
系统
下用
Ventoy
制作
Windows
启动盘
_ventory
启动盘
工具...
Ubuntu 18.04 制作
Windows
10企业版
启动盘
(U盘)概要由于学习Ros需要安装了ubuntu18.04,...
赞
踩
article
MIPS
(),是一種採取精簡
指令集
(
RISC
)
的
指令集
架構
(
ISA
):A-1:
19
,由美国
MIPS
计...
(),是一種採取精簡
指令集
(
RISC
)
的
(
ISA
):A-1:
19
,由美国
MIPS
计算机系统
公司
開發,现为。
MIPS
廣泛被...
赞
踩
article
python
镜像
源_
python
镜像
源...
中科大: https://pypi.mirrors.ustc.edu.cn/simple/清华:https://pypi...
赞
踩
article
【
1day
】
Panabit
日志
系统
openid
接口SQL注入
漏洞
_
panabit
漏洞
利用...
本文详细介绍了
Panabit
日志
系统
中
openid
接口存在的SQL注入
漏洞
,包括
漏洞
描述、资产测绘和复现过程。同时,提出...
赞
踩
article
自动
备份
SQL
Server
数据库
,
试试这4种方法!_
sqlserver
数据库
备份
...
傲梅企业
备份
网络版不仅用于
SQL
数据库
备份
。它也适用于 Windows PC 和服务器的集中
备份
和恢复。例如
,
您可以使...
赞
踩
article
Java
转
Kotlin
指南_
java
转
kotlin
...
给
Java
开发者速查的
Kotlin
指南。_
java
转
kotlin
java
转
kotlin
...
赞
踩
article
js
封装
map
_
前端
封装
成
map
...
js
封装
map
_
前端
封装
成
map
前端
封装
成
map
js
封装
map
 ...
赞
踩
article
客服
配置
-
shopro
_
获取
shopro
应用
配置
和模板...
shopro
客服
系统workerman
shopro
商城。
_
获取
shopro
应用
配置
和模板获取
shopro
应用
配置
和模板 ...
赞
踩
article
USB
ncm
虚拟网卡...
USB
ncm
虚拟网卡_usb
ncm
usb
ncm
NCM介绍 1 功能
USB
NC...
赞
踩
article
livebos
报表
开发...
本文详细介绍了
livebos
报表
开发的过程,包括参数设定、内容展示、综合效果、调用过程、数据库查看以及注意事项。通过调用...
赞
踩
article
Nvidia
推出
Blackwell
B200
GPU,是目前最强的
人工智能
芯片_b100 b200 ...
英伟达今天又爆火了一把,出手就是碾压!其最新发布的
Blackwell
架构将使AI算力一步提升30倍,将助力生成式 AI...
赞
踩
article
作业
九——
类
...
该章主要讲述了如何使用
类
,构造
类
,还有关于
类
的继承的问题。 9-1 餐馆 题目描述: 创建一个名为Resta...
赞
踩
article
解决 导入三方时出现
:
appComponentFactory
错误
_
android
:
appcomp...
导入最新的三方某包后,清单文件报错
:
某包比如
:
implementation "com.github.hotchemi
:
p...
赞
踩
article
stable
diffusion
如何公网
访问
_
stable
diffusion
g 公网
ip
访问
...
给大家介绍一个免费的内网穿透工具是一个高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等协议。它的设计...
赞
踩
相关标签
微信小程序
小程序
python
json
android
深度学习
tensorflow
人工智能
golang
游戏
前端
ViewUI
git
github
数据分析
matplotlib
数据挖掘
linux
ubuntu
windows
系统安装
开发语言
web安全
安全
数据库