jni关于内部类的一些问题
来源:互联网 发布:java网络编程视频教程 编辑:程序博客网 时间:2024/06/11 08:46
初次接触JNI,本来对java也不熟,因为要做android的项目,碰到了一些问题,特此记录
java代码如下:
class A{
static{
System.loadLibrary("A");
}
int a = 1;
class B{
int b = 2;
public void show(){
System.out.println("b = " + b);
}
};
public native B getB();
public void show(){
System.out.println("a = " + a);
getB().show();
}
};
如上代码,A有一个内部类B,如果要在JNI层返回B的实例,首先用 javap -s -p A.B 查看签名得到
A$B(A);
Signature: (LA;)V
说明B的构造函数带有一个参数类A
c代码如下:
JNIEXPORT jobject JNICALL Java_A_getB(JNIEnv *env, jobject thiz)
{
jobject b = NULL;
jclass bcls = (*env)->FindClass(env,"A$B");
jmethodID mid = (*env)->GetMethodID(env,bcls,"<init>","(LA;)V");
b = (*env)->NewObject(env,bcls,mid,thiz);
return b;
}
注意上面的红色代码,因为B是A的内部类,所以FindClass的时候是A$B
然后是B的构造方法,因为是构造方法,所以GetMethodID的第三个参数固定为"<init>",第四个参数,对于一般类来说为"()V",
因为B是A的内部类,通过上面的javap查看得到此处应该为"(LA;)V"
- jni关于内部类的一些问题
- java关于内部类的一些总结
- 关于内部类的一些Demo要点
- 关于内部类的一些总结。
- 关于静态内部类的一些看法
- 关于匿名内部类的问题
- 关于匿名内部类的问题详解
- 关于JAVA里面的内部类的一些理解
- 黑马程序员 关于内部类的一些知识总结
- [Thinking in JAVA] 关于内部类的一些知识点
- 关于接口,内部类,异常的一些介绍
- 关于接口,继承,内部类的一些测试
- 关于Java中内部类的一些概念整理
- 内部类的一些规则
- 内部类的一些知识
- 内部类的一些记载
- 内部类的一些事
- 内部类的一些知识
- eyeOS 简介
- 从此远离股市,踏实做人
- 程序员技术练级攻略
- Android缩放drawable 压缩图片 matrix
- test
- jni关于内部类的一些问题
- C++ 文件读入
- Win32路径操作相关API
- JsonWriter的使用
- 边框设置
- VS2008结合VA使用经验总结
- NetBeans xdebug的安装
- Spring中ref local与ref bean区别
- 【RFB】Linux uinput 分析,虚拟鼠标,键盘