本机Java方法是否等同于静态Java方法?

时间:2013-03-06 17:21:39

标签: java java-native-interface

我正在将一些本机方法重写为常规Java方法。

原生方法是否有效静态?或者有没有他们有一个隐含的'this'参数的情况?

谢谢!

1 个答案:

答案 0 :(得分:23)

本机方法可以是static或非static,就像常规Java方法一样。

static原生方法会收到this引用,而static会收到对包含类的引用。

来自JNI Specification

  

原生方法参数

     

JNI接口指针是本机方法的第一个参数。 JNI接口指针的类型为JNIEnv。第二个参数根据本机方法是静态方法还是非静态方法而有所不同。非静态本机方法的第二个参数是对该对象的引用。静态本机方法的第二个参数是对其Java类的引用。