0

我正在尝试查找 java.util.list 的“添加”方法。该方法接受输入和返回值类型如下:

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

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

4

2 回答 2

1

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

于 2013-06-04T13:24:52.303 回答
0

看看这个关于 JNI 的页面

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

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

于 2013-06-04T13:07:03.527 回答