0

例如,我有一个 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 ?

}
4

1 回答 1

1

Starter : Trail: 反射 API

  1. 方法 getDeclaredMethods 返回一个 Method 对象数组,不包括继承的方法
  2. 方法 getDeclaredFields 返回一个 Field 对象数组,不包括继承的字段
  3. 方法 getSuperclass 返回超类

正如@technomage 评论的那样,在 JNI 中完成所有工作很难正确完成(特别是如果您不喜欢内存泄漏和崩溃)

如果您对 JNI 还不够“流利”,请从更简单的目标开始。

于 2013-10-16T13:18:43.243 回答