如何遍历作业中的所有成员

时间:2013-10-16 08:33:27

标签: java-native-interface

例如,我有一个Java类:

public class JniTest {
    public int member_int_;
    public int member_int_2_;
    public boolean member_bool_;
    public static int member_static_int_ = 90;
    public String member_str_;
    void print() {};
}
在JNI,我想让每个成员事先不知道他们的名字:

JNIEXPORT void JNICALL Java_com_tencent_qqmail_protocol_JniMethodTest_TestObject(JNIEnv * env, jclass cls, jobject obj) {

    *for (each member in obj)* { ... } //how to implement ?

}

1 个答案:

答案 0 :(得分:1)

初学者:Trail: The Reflection API

  1. 方法getDeclaredMethods返回一个Method对象数组,不包括继承的方法
  2. 方法getDeclaredFields返回Field对象的数组,不包括继承的字段
  3. 方法getSuperclass返回超类
  4. 正如@technomage评论的那样,在JNI中完成所有工作很难正确完成(特别是如果你不喜欢内存泄漏和崩溃)

    如果您尚未在JNI中“流利”,请从更简单的目标开始。