gpt4 book ai didi

java.lang.IllegalArgumentException : argument type mismatch while using Reflection 异常

转载 作者:搜寻专家 更新时间:2023-10-31 19:47:48 25 4
gpt4 key购买 nike

下面是我使用反射调用方法的代码,但我总是得到异常

List<PdAttrKey> attrKeys = new ArrayList<PdAttrKey>();
Properties adapterProps = new Properties();

PdReadRequest pdReadRequest = new PdReadRequest(1L, 1L, (short) 0, new Date(),
dataDurationSec, 2L, 3L, attrKeys, null, adapterProps);

PdAdapterUserReadOnlyGemsReader adapter1 = new PdAdapterUserReadOnlyGemsReader();

PdReader reader = adapter1.acquireReader(pdReadRequest);

UserCacheDoImpl userDos = Some Value;

Method method = getClassMethod("createPdRecordFromUserDO");

// This line is throwing me exception. And I don't know why?
PdRecord onePdsxRecord = (PdRecord) method.invoke(reader, userDos);

这是我从中获取类的所有方法名称的以下方法。

    private Method getClassMethod(String methodName) {
Method method = null;

Method[] methodList = PdAdapterUserReadOnlyGemsReader.PdUserReadOnlyGemsReader.class
.getDeclaredMethods();
for (Method m : methodList) {
if (m.getName().equals(methodName)) {
method = m;
method.setAccessible(true);
break;
}
}

return method;
}

更多代码:-

private PdRecord createPdRecordFromUserDO(UserCacheDoImpl userCache) {
// Some code here
}

这是我遇到的异常。知道为什么吗?

java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:599)

任何建议都会有很大帮助。

最佳答案

请检查是否存在多个名为“createPdRecordFromUserDO”的方法。看起来不止一个,但是参数不同。

您的方法 getClassMethod 返回它找到的第一个方法,但这可能是错误的方法。检查 methodList.length > 1,这就是错误的原因。

如果找到多个具有给定名称的方法,请重新考虑您想要做什么。

关于java.lang.IllegalArgumentException : argument type mismatch while using Reflection 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13438369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com