2015-01-20 2 views
2

У меня есть метод в C, который:Как определить переменное число аргументов с помощью JNI

static int   callLuaFunctionWithParams(const char *functionName, int numParams, ...); 

Так он содержит переменное число аргументов, и я хочу, чтобы экспортировать его так, чтобы он мог быть использован приложение для Android. На JNIBindings я экспортирующих это нравится:

JNIEXPORT void JNICALL Java_com_example_callLuaFunctionWithParams(JNIEnv* env, jobject obj, jstring functionName, jint numParams, ...); 

, но как я могу определить, что синтаксис на Java

public native void callLuaFunctionWithParams(String functionName, int numParams, ????); 

Спасибо!

+1

Java требует переменной длины всех быть одного и того же базового типа. Вы можете указать 'Object ... varargs', но тогда любое требуемое преобразование зависит от вас. – EJP

ответ

1

Это должна работать:

public native void callLuaFunctionWithParams(String functionName, int numParams, Object... params); 

 Смежные вопросы

  • Нет связанных вопросов^_^