NewGlobalRef(class); -6ren">
gpt4 book ai didi

java - JNI 中 addall ArrayList 的 NoSuchMethodError

转载 作者:行者123 更新时间:2023-12-02 12:09:22 24 4
gpt4 key购买 nike

jclass class= env->FindClass("java/util/ArrayList"); 

listClass = (jclass)env->NewGlobalRef(class);

listAddAllID = env->GetMethodID(listClass, "addAll", "(Ljava/lang/Object;)Z");

上面的代码“java.lang.NoSuchMethodError: addAll”出现以下异常。我使用“lang/object”作为参数,使用“z”作为返回类型 boolean 值。这似乎完全正确。什么是我在这里失踪了吗?

public boolean addAll(Collection c)

最佳答案

您始终可以使用javap来获取方法的正确描述符

> javap -s java.util.ArrayList | grep -A +1 addAll
public boolean addAll(java.util.Collection<? extends E>);
descriptor: (Ljava/util/Collection;)Z
--
public boolean addAll(int, java.util.Collection<? extends E>);
descriptor: (ILjava/util/Collection;)Z

因此,您需要将其更改为其中之一(取决于您要进行的调用)。

享受 JNI 带来的乐趣!

关于java - JNI 中 addall ArrayList 的 NoSuchMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46664095/

24 4 0