Мне нужно передать массив и целое число из java-метода, который вызывается JNI.Возврат из java в JNI по ссылке
public static int foo(byte[] data)
{
byte[] buffer;
// Fill buffer with data
data = buffer; // <--- This doesn't work as the pointer is changed
return bufferSize;
}
В строке указано, что я понимаю, что указатель изменяется, но ссылка, которую я имею в JNI к data
, который я прошел в не обновляется, так что я не получаю новые данные.
Как бы я мог возвращать дополнительные данные, хотя параметры?
Вам необходимо передать объекты и использовать их сеттеры для изменения их значений. –
Хорошо, как это работает, если бы я хотел вернуть целое число по параметру, заданному 'Integer', является неизменным? – DrYap
Вам нужно будет взять обертку в качестве параметра, который содержит ссылку на «Integer», и выделить такое новое «Integer». Было бы лучше, если бы вы могли реорганизовать свой код, чтобы не делать этого. –