美文网首页
JNI完全指南(九)——反射

JNI完全指南(九)——反射

作者: 798fe2ac8685 | 来源:发表于2016-11-15 15:51 被阅读274次

    标签(空格分隔): JNI完全指南

    版本:1
    作者:陈小默
    声明:禁止商业,禁止转载
    

    发布于:作业部落简书CSDN博客


    上一篇:JNI完全指南(八)——NIO


    [toc]


    九、反射

    反射能够使开发者在仅知道名称的情况下就能操作方法和属性。JNI提供了一系列在Java反射的核心方法。

    9.1 将一个Method对象转换为方法ID

    jmethodID FromReflectedMethod(JNIEnv *env, jobject method);

    • method:java.lang.reflect.Method或者java.lang.reflect.Constructor对象。通过9.3得到。

    9.2 将一个Field对象转换为属性ID

    jfieldID FromReflectedField(JNIEnv *env, jobject field);

    • field:java.lang.reflect.Field对象,通过9.4得到。

    9.3 反射得到Method对象

    以下方法将一个来源于cls类的方法ID转换为java.lang.reflect.Method或者java.lang.reflect.Constructor对象。

    jobject ToReflectedMethod(JNIEnv *env, jclass cls,jmethodID methodID, jboolean isStatic);

    • cls:方法所在的类。
    • methodID:方法ID。
    • isStatic:是否是静态方法。
    • return:java.lang.reflect.Method或者java.lang.reflect.Constructor对象。失败是返回NULL。

    存在异常

    • OutOfMemoryError

    9.4 反射得到Field对象

    以下方法将一个来源于cls类的属性ID转换为java.lang.reflect.Field对象。

    jobject ToReflectedField(JNIEnv *env, jclass cls,jfieldID fieldID, jboolean isStatic);

    • cls:属性所在的类对象。
    • fieldID:属性ID。
    • isStatic:是否是静态属性。

    存在异常

    • OutOfMemoryError

    下一篇:JNI完全指南(十)——Java 虚拟机


    [1]ORACLE guides for JNI——Chapter 4: JNI Functions

    相关文章

      网友评论

          本文标题:JNI完全指南(九)——反射

          本文链接:https://www.haomeiwen.com/subject/trqlpttx.html