java中怎么通过关系得到对象,通过对象得到属性值

java中怎么通过关系得到对象,通过对象得到属性值,第1张

通过关系得到对象不知道是什么意思,不过通过对象得到属性很好办,如果有个类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 如何取得这个对象的属性值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9318762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存