java - jni 中接口(interface)的 isinstance

标签 java java-native-interface

如何在接口(interface)的 jni 中实现与 InstanceOf 相同的功能。 JNi 仅适用于类对象。但 java 关键字也适用于接口(interface)。

最佳答案

接口(interface)也有与之关联的类对象,因此您可以使用 IsInstanceOf对于接口(interface)。例如,以下程序检查 String 是否是接口(interface) CharSequence 的一个实例(它是):

public static void main(String[] args) {
    String s = "Test";
    System.out.println(m(CharSequence.class, s)); // prints 'true'
}

public static native boolean m(Class<?> cls, Object o);

JNIEXPORT jboolean JNICALL Java_Main_m(JNIEnv *env, jclass dc, jclass intf, jobject o) {
    return (*env)->IsInstanceOf(env, o, intf);
}

关于java - jni 中接口(interface)的 isinstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48815367/

相关文章:

java - 无法执行目标 org.apache.maven.plugins :maven-enforcer-plugin

java - 是否可以制作一个调用 jdbc 的 Java JNI?

java - JNI SetDoubleArrayRegion问题

java - JNI - 从 C++ 调用 Java 方法

java - 了解 Mockito 框架背后发生的事情

java - Ajax直接进入错误部分

java - 不满意的链接错误 : no library file in java. library.path

java - Java native 接口(interface) (JNI) 的使用

java - 为什么servlets通过ApplicationContextFacade间接访问Tomcat的ApplicationContext(ServletContext)(而不是直接访问)

java - 查找给定日期范围内的所有星期六和星期日