小弟我用JNI 法由DLL返回一个jclass 值, JNIEXPORT jclass 实例化的有关问题
我用JNI 法由DLL返回一个jclass 值, JNIEXPORT jclass 实例化的问题.
JNIEXPORT jclass 实例化的问题.
我用JNI 法由DLL返回一个jclass 值,请问如何能把它实例化呢.
如
Class a = bb;
public class Dll {
public static native Class getClass(String prompt);
static {
System.loadLibrary("Dll");
}
public static void main(String[] args) {
Class aa = new aagetClass("String prompt"); //请问怎能把aa实例化执行 say()呢?
aa.say();
}
public class aa{
public String say()
{
System.out.println("is ok" );
return "2";}
}
------解决方案--------------------
zcDll是Dll new出来的?
------解决方案--------------------
Class aa = new aagetClass("String prompt"); //请问怎能把aa实例化执行 say()呢?
试试看
Object aa = dll.getClass("String prompt").newInstance()
Object aa = zcDll.getClass("String prompt").newInstance()
------解决方案--------------------
Object aa = Dll.getClass("String prompt").newInstance()
------解决方案--------------------
给你个提示:
JNIEXPORT jclass 实例化的问题.
我用JNI 法由DLL返回一个jclass 值,请问如何能把它实例化呢.
如
Class a = bb;
public class Dll {
public static native Class getClass(String prompt);
static {
System.loadLibrary("Dll");
}
public static void main(String[] args) {
Class aa = new aagetClass("String prompt"); //请问怎能把aa实例化执行 say()呢?
aa.say();
}
public class aa{
public String say()
{
System.out.println("is ok" );
return "2";}
}
------解决方案--------------------
zcDll是Dll new出来的?
------解决方案--------------------
Class aa = new aagetClass("String prompt"); //请问怎能把aa实例化执行 say()呢?
试试看
Object aa = dll.getClass("String prompt").newInstance()
Object aa = zcDll.getClass("String prompt").newInstance()
------解决方案--------------------
Object aa = Dll.getClass("String prompt").newInstance()
------解决方案--------------------
给你个提示:
- Java code
jobject JNICALL Java_jni_StuService_getStuList (JNIEnv *env, jclass) { /**************创建ArrayList 对象 start*****************/ jclass class_ArrayList=env->FindClass("java/util/ArrayList");/* 获得Java类 */ jmethodID construct=env->GetMethodID( class_ArrayList, "","()V");/* 获得构造方法 */ jobject obj_List =env->NewObject( class_ArrayList, construct, "");/* 创建java对象 */ /**************创建ArrayList 对象 end *****************/ /* 获得List的add方法 */ jmethodID list_add=env->GetMethodID(class_ArrayList,"add","(Ljava/lang/Object;)Z"); int i=0; while(i<3){ jobject student=constructStudent(env,i); /* 调用List 的add方法 */ env->CallObjectMethod(obj_List,list_add,student); ++i; } return obj_List; }