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反射 - 找不到方法的主要内容,如果未能解决你的问题,请参考以下文章