Java反射 - 找不到方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java反射 - 找不到方法相关的知识,希望对你有一定的参考价值。

我试图找到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);

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

但是如评论所述,如果你已经有一个qazxsw poi实例,你可以简单地调用:

PreparedStatement

以上是关于Java反射 - 找不到方法的主要内容,如果未能解决你的问题,请参考以下文章

java 反射代码片段

Kotlin:找不到符号类片段或其他 android 类

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

创建片段而不从 java 代码实例化它

Kotlin 在片段中找不到按钮 ID,为啥?

调用 onCreateView() 之前出现“找不到片段 id 的视图”错误