Javaで定義された基本クラスがあります。次のようにネイティブ メソッドを呼び出したいと思います。
public class Base<T>
{
    public void doSomething()
    {
        nativeDoSomething();
    }
    private native void nativeDoSomething();
}
私の質問は、ジェネリック クラスの jni メソッド シグネチャを指定するにはどうすればよいですか?
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(Object genericOne, Object genericTwo)。
この方法では、Java Native Interface を使用するときにジェネリックを気にする必要さえありません。すべてが に変換されるためObject、単純に として参照できますjobject。
同じことが Java クラスにも当てはまります。単純に として参照できますjclass。
javahジェネリックを無視しているようです:
JNIEXPORT void JNICALL Java_Base_nativeDoSomething
   (JNIEnv *, jobject);