通过关系得到对象不知道是什么意思,不过通过对象得到属性很好办,如果有个类class是student,student有个属性是name,如果想得到name,那就直接studentname;如果用的话就是Student stu = new Student();stugetName()就可以得这个sti实例的name属性注:student写了get和set方法
List<Student> ls = new ArrayList<Student>();
Student student = (Student)lsget(1)
studentgetXXX()
对于java传递进来的java对象模型,c要加载java类的原型,根据创建相应的c对象,获取java对象的方法的id,然后调用java对象的方法。比如有个java类customer对象作为jni参数传递到c程序,customer有方法String getName()。
JNIEXPORT jobject JNICALL Java_com_oracle_estt_sc_db_impl_SCQueryODBC__1getCustomer
(JNIEnv env, jobject, jobject customer){
jmethodID methodId;
//获得customer对象的句柄
jclass cls_objClass=env->GetObjectClass(customer);
//获得customer对象中特定方法getName的id
methodId=env->GetMethodID(cls_objClass,"getName","()Ljava/lang/String;");
//调用customer对象的特定方法getName
jstring js_name=(jstring)env->CallObjectMethod(customer,methodId,NULL);
}
然后C向java传递对象方法如下:
JNIEXPORT jobject JNICALL Java_perfecter_jni_LoadJni_getJavaObj(JNIEnv env,
jobject obj){
jclass clazz=env->FindClass("perfecter/jni/MyObj");
if(clazz==0)
return 0;
jobject jobj=env->AllocObject(clazz);
jfieldID fieldId=env->GetFieldID(clazz,"name","Ljava/lang/String;");
env->SetObjectField(jobj,fieldId,env->NewStringUTF("wahaha"));
return jobj;
}
java对应的native方法申明public static native MyObj getJavaObj();
public void countSim(){
for(int i = 0; i < userlistsize(); i++){
User user = userListget(i);
///////////////和普通的 *** 作一样使用user了 。。。。。。。。。。。。。。
以上就是关于java中怎么通过关系得到对象,通过对象得到属性值全部的内容,包括:java中怎么通过关系得到对象,通过对象得到属性值、多个对象存储在java的ArrayList中,如何获取其中一个对象的一个或几个属性、java 通过jni 向 c 传递一个 java 对象, c 如何取得这个对象的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)