通过JNI查找java.util.list的add方法

时间:2013-06-04 12:56:37

标签: java java-native-interface

我正在尝试找到java.util.list的“add”方法。该方法采用输入和返回值类型,如下所示:

jmethodID addMethodID = (*env)->GetMethodID(env, listClass, "add", "(Ljava/lang/Object)(Ljava/lang/String)Z;");

返回值为NULL。我哪里错了?输出的布尔规范是错误的还是输入类型?我应该指定我的输入类型吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:1)

java.util.List.add(Object e)只有一个参数...你有两个列出的(对象和字符串)和一个返回类型。我想你想要:(Ljava / lang / Object;)Z;

答案 1 :(得分:0)

看看this page on JNI

在您的代码中,我认为您遗漏了方法签名中的一些分号。即:"(Ljava/lang/Object)(Ljava/lang/String)Z;"应为"(Ljava/lang/Object;)(Ljava/lang/String;)Z;"

您可以考虑使用带有-s标记的javap来自动生成所需方法的签名。