Подтвердить что ты не робот

Являются ли родные методы Java эквивалентными статическим методам Java?

Я переписываю некоторые собственные методы как обычные Java-методы.

Являются ли нативные методы эффективными статическими? Или существует ли когда-либо случай, когда у них есть неявный параметр 'this'?

Спасибо!

4b9b3361

Ответ 1

Нативные методы могут быть static или не static, как обычные методы Java.

Не-static native методы получают this reference, static получают вместо этого ссылку на containg class.

Из Спецификация JNI:

Нативные аргументы метода

Указатель интерфейса JNI является первым аргументом для собственных методов. Указатель интерфейса JNI имеет тип JNIEnv. Второй аргумент отличается в зависимости от того, является ли нативный метод статическим или нестатическим. Второй аргумент для нестатического нативного метода - это ссылка на объект. Второй аргумент статического родного метода - ссылка на его класс Java.