gpt4 book ai didi

Java 反射 - 找不到方法

转载 作者:行者123 更新时间:2023-11-29 09:51:47 25 4
gpt4 key购买 nike

我正在尝试查找 PreparedStatement 的方法 (ps):

Method method = ps.getClass().getMethod("setLong", int.class, Class.forName("java.lang.Long"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);

但是没有找到。我必须使用 Class.forName("java.lang.Long") 而不是 Long.class。

对于 String 它有效:

Method method = ps.getClass().getMethod("setString", int.class, Class.forName("java.lang.String"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);

我做错了什么?任何想法? Long的命名空间是不是错了?

最佳答案

第二个参数是a long, not a Long :

Method method = ps.getClass().getMethod("setLong", int.class, long.class);

此外,对于字符串,您不需要调用 Class.forName("java.lang.String"):String.class 也可以.

但如评论所述,如果您已经有一个 PreparedStatement 实例,您可以简单地调用:

ps.setLong(fieldIndex, value);

关于Java 反射 - 找不到方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49128215/

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