gpt4 book ai didi

java - 如何定义泛型类的 JNI 方法签名?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:40 27 4
gpt4 key购买 nike

我有一个用 java 定义的基类。我想像这样调用本地方法:

public class Base<T>
{
public void doSomething()
{
nativeDoSomething();
}

private native void nativeDoSomething();
}

我的问题是,如何指定泛型类的 jni 方法签名?

最佳答案

我来晚了,但我会添加它以供将来引用。

Java 中的泛型是使用 Type Erasure 实现的,基本上是:泛型只存在于编译时:它们在那之后就消失了,不存在于运行时

这意味着,即使您可以拥有类似public native void blah(E genericOne, F genericTwo) 的方法,但在编译时,它实际上会转换为public native void blah(对象 genericOne,对象 genericTwo)

这样,在使用 Java Native Interface 时,您甚至不需要关心泛型:所有内容都被转换为 Object,因此您可以简单地将它们作为 jobject.

Java 类也是如此:您可以简单地将它们引用为 jclass

关于java - 如何定义泛型类的 JNI 方法签名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18647599/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com